Professional Documents
Culture Documents
EAUserGuide (Manual de Enterprise Architect User Guide)
EAUserGuide (Manual de Enterprise Architect User Guide)
Enterprise Architect is an intuitive, flexible and powerful UML analysis and design tool for building robust and maintainable software. From requirements gathering, through analysis, modeling, implementation and testing to deployment and maintenance, Enterprise Architect is a fast, feature-rich, multi-user UML modeling tool, driving the long-term success of your software project.
Enterprise Architect is a complete UML-based solution for analysing, designing, managing, sharing and building software systems.
Publisher Sparx Systems Managing Editor Geoffrey Sparks Technical Editors Geoffrey Sparks Dermot O'Bryan Simon McNeilly Neil Capey Sam Mancarella John Redfern Vimal Kumar Howard Britten Brad Maxwell Steve Meagher
Special thanks to: All the people who have contributed suggestions, examples, bug reports and assistance in the development of Enterprise Architect. The task of developing and maintaining this tool has been greatly enhanced by their contribution.
Contents
Table of Contents
Foreword 1
24
26 27 27
40
Start Enterprise Architect ................................................................................................................................... 41 The User................................................................................................................................... 42 Interface The Start................................................................................................................................... 44 Page
Remove Recent Projects .......................................................................................................................................................... 45
Contents
II
50 51 51 52 54 55 55
Class Model Template .......................................................................................................................................................... Database.......................................................................................................................................................... Model Template Component Model Template .......................................................................................................................................................... Deployment Model Template .......................................................................................................................................................... Testing Model Template .......................................................................................................................................................... Maintenance Model Template .......................................................................................................................................................... Project Model Template ..........................................................................................................................................................
III
Contents
......................................................................................................................................................... The Customize Dialog Customize ......................................................................................................................................... Commands Customize Toolbars ......................................................................................................................................... Custom Tools ......................................................................................................................................... ................................................................................................................................... Open External Tools ................................................................................................................................... Pass Parameters to Applications Customize Keyboard ......................................................................................................................................... Customize Menu ......................................................................................................................................... Customize Options ......................................................................................................................................... The Add-Ins Menu .......................................................................................................................................................... The Settings Menu .......................................................................................................................................................... The Window Menu .......................................................................................................................................................... The Help Menu .......................................................................................................................................................... 92 93 94 96 98 100 101 103 104 104 105 106 107
Contents
IV
149 150 152 154 156 160 161 161 165 168 169 170
......................................................................................................................................................... Model Views Toolbar ......................................................................................................................................................... Model Views Context Menus ......................................................................................................................................................... Model Views Operations ......................................................................................................................................................... Diagram Slide Show Model Search .......................................................................................................................................................... Use......................................................................................................................................................... the Model Search ......................................................................................................................................................... Search a Model ......................................................................................................................................................... Search Definitions Create Search Definitions ......................................................................................................................................... Pre-defined Search Definitions ......................................................................................................................................... Add Filters ......................................................................................................................................... ................................................................................................................................... Fields and Conditions
The Web Browser ................................................................................................................................... 172 Arrange................................................................................................................................... 173 Windows and Menus
Dock Windows .......................................................................................................................................................... Autohide Windows .......................................................................................................................................................... Tear Off.......................................................................................................................................................... Menus 173 175 176
Appearance ......................................................................................................................................... 224 ................................................................................................................................... 225 Set Default Fonts Behavior ......................................................................................................................................... 227 Sequence......................................................................................................................................... 228 1998-2009 Sparx Systems Pty Ltd
Contents
......................................................................................................................................................... Objects Element Visibility ......................................................................................................................................... ......................................................................................................................................................... Links ......................................................................................................................................................... Communication Message Colors ......................................................................................................................................................... XML Specifications Custom.......................................................................................................................................................... Layouts Visual Styles .......................................................................................................................................................... 230 231 232 233 235 236 237
255
Business Analysts ................................................................................................................................... 256 Software Architects ................................................................................................................................... 258 Software Engineers ................................................................................................................................... 260 Developers ................................................................................................................................... 261 Project ................................................................................................................................... 263 Managers Testers ................................................................................................................................... 264 Implementation Manager ................................................................................................................................... 265 Technology Developers ................................................................................................................................... 267 Database Administrators ................................................................................................................................... 268
270
271 271 272 272 273 273
Contents
VI
287 288 289 289 291 292 293 296 297 297 297 297 298 298 299 299 300 300 302 303 303 304 306 306 307 308 311 312 314 314 316 316 317 318 318 318 318 319 321 322 323 324 325 326 326 329 330 331 332
Digraph Layout ......................................................................................................................................... Spring Layout ......................................................................................................................................... Neaten Layout ......................................................................................................................................... Converge/Diverge Layout ......................................................................................................................................... Fan Relations Layout ......................................................................................................................................... Auto Route Layout ......................................................................................................................................... Lay Out a ......................................................................................................................................... Diagram Automatically ......................................................................................................................................................... Delete Diagram ......................................................................................................................................................... Rename Diagram ......................................................................................................................................................... Copy And Paste Diagram Element ......................................................................................................................................................... Diagram Navigation Hotkeys ......................................................................................................................................................... Copy Image to Disk ......................................................................................................................................................... Copy Image to Clipboard ......................................................................................................................................................... Change Diagram Type ......................................................................................................................................................... Z Order Elements ......................................................................................................................................................... Copy (Duplicate) Diagram ......................................................................................................................................................... Open Package From Diagram ......................................................................................................................................................... Feature Visibility ......................................................................................................................................................... Insert Diagram Properties Note ......................................................................................................................................................... Autosize Elements ......................................................................................................................................................... Paste from Project Browser Paste Multiple Items ......................................................................................................................................... Paste Composite Elements ......................................................................................................................................... Paste Activities ......................................................................................................................................... ......................................................................................................................................................... Place Related Elements on Diagram ......................................................................................................................................................... Swimlanes Matrix ......................................................................................................................................................... Swimlanes ......................................................................................................................................................... Using the Image Manager Create Custom Diagram Background ......................................................................................................................................... Import Image Library ......................................................................................................................................... ......................................................................................................................................................... Show Realized Interfaces of Class ......................................................................................................................................................... Label Menu Section ......................................................................................................................................................... Lock Diagram ......................................................................................................................................................... Undo Last Action ......................................................................................................................................................... Redo Last Action ......................................................................................................................................................... View Last and Next Diagram ......................................................................................................................................................... Diagram Properties General Tab ......................................................................................................................................... Diagram Tab ......................................................................................................................................... Elements Tab ......................................................................................................................................... Features Tab ......................................................................................................................................... Connectors Tab ......................................................................................................................................... Visible Class Members ......................................................................................................................................... Set ......................................................................................................................................................... the Default Diagram ......................................................................................................................................................... Create Legends ......................................................................................................................................................... Scale Image to Page Size Set ......................................................................................................................................................... Diagram Page Size Pan......................................................................................................................................................... and Zoom a Diagram ......................................................................................................................................................... Move Elements In Diagram Sections
VII
Contents
Embedded Elements Dialog ......................................................................................................................................... ......................................................................................................................................................... Features Menu Section ......................................................................................................................................................... Code Engineering Menu Section ......................................................................................................................................................... Appearance Menu Section Set Element Font ......................................................................................................................................... ......................................................................................................................................................... Element Multiple Selection Menu Element.......................................................................................................................................................... Tasks ......................................................................................................................................................... Create Elements Add......................................................................................................................................................... Elements Directly To Packages Use......................................................................................................................................................... Auto Naming and Auto Counters Set ......................................................................................................................................................... Element Parent ......................................................................................................................................................... Show Element Use Set ......................................................................................................................................................... Up Cross References ......................................................................................................................................................... Move Elements Within Diagrams ......................................................................................................................................................... Move Elements Between Packages ......................................................................................................................................................... Change Element Type ......................................................................................................................................................... Align Elements ......................................................................................................................................................... Resize Elements ......................................................................................................................................................... Delete Elements ......................................................................................................................................................... Customize Visibility of Elements ......................................................................................................................................................... Create Notes and Text Set ......................................................................................................................................................... an Element's Default Appearance ......................................................................................................................................................... Get/Set Project Custom Colors Set ......................................................................................................................................................... Element Templates Package ......................................................................................................................................................... Highlight Context Element ......................................................................................................................................................... Make Linked Element a Local Copy ......................................................................................................................................................... Copy Features Between Elements ......................................................................................................................................................... Move Features Between Elements Attributes .......................................................................................................................................................... ......................................................................................................................................................... Attributes Dialog - General Tab ......................................................................................................................................................... Attributes Dialog - Detail ......................................................................................................................................................... Attributes Dialog - Constraints ......................................................................................................................................................... Attributes Dialog - Tagged Values ......................................................................................................................................................... Create Properties ......................................................................................................................................................... Display Inherited Attributes ......................................................................................................................................................... Create Object From Attribute Properties .......................................................................................................................................................... ......................................................................................................................................................... General Settings Advanced ......................................................................................................................................... Settings ......................................................................................................................................................... Details ......................................................................................................................................................... Requirements External Requirements ......................................................................................................................................... ......................................................................................................................................................... Constraints ......................................................................................................................................................... Links ......................................................................................................................................................... Scenarios ......................................................................................................................................................... Associated Files ......................................................................................................................................................... Tagged Values Tab ......................................................................................................................................................... Tagged Values Advanced ......................................................................................................................................... Tag Management Quick Add......................................................................................................................................... of Tagged Values ......................................................................................................................................................... Object Classifiers Using Classifiers ......................................................................................................................................... ......................................................................................................................................................... Select <Item> Dialog Behavioral Modeling .......................................................................................................................................................... ......................................................................................................................................................... Operations 341 342 342 343 344 345 346 346 348 348 349 350 351 352 354 355 355 356 357 358 359 360 362 364 365 366 366 367 369 371 373 374 375 375 377 378 379 380 381 382 383 385 386 387 388 389 390 390 390 392 393 394 394 396 396
Operations Dialog - General ......................................................................................................................................... 397 Operations Dialog - Behavior ......................................................................................................................................... 400 ................................................................................................................................... 401 Initial Code
Contents
VIII
402 403 404 405 407 407 407 408 408 408 409 410 410 412 412 413 414 415 415 416 417 418 418 419 421 422 423 424 426 426 427 428 429 429 430 431
Operations Dialog - Constraints ......................................................................................................................................... Operation ......................................................................................................................................... Tagged Values Override Parent Operations ......................................................................................................................................... Display Inherited Operations ......................................................................................................................................... ......................................................................................................................................................... Interactions and Activities ......................................................................................................................................................... Behavior Calls Associate ......................................................................................................................................... with Different Behaviors Synchronize Arguments ......................................................................................................................................... ......................................................................................................................................................... Behavior Parameters Parameters Dialog ......................................................................................................................................... Parameter......................................................................................................................................... Tagged Values Operation ......................................................................................................................................... Parameters by Reference ......................................................................................................................................................... Behavior Call Arguments Element.......................................................................................................................................................... In-place Editing Options ......................................................................................................................................................... In-place Editing Tasks Edit......................................................................................................................................................... Element Item Name Edit......................................................................................................................................................... Feature Stereotype Edit......................................................................................................................................................... Feature Scope Edit......................................................................................................................................................... Attribute Keyword Edit......................................................................................................................................................... Operation Parameter Keyword Edit......................................................................................................................................................... Parameter Kind ......................................................................................................................................................... Insert New Feature ......................................................................................................................................................... Insert Operation Parameter ......................................................................................................................................................... Insert Maintenance Feature ......................................................................................................................................................... Insert Testing Features Element.......................................................................................................................................................... Icons Link Note to Internal Documentation .......................................................................................................................................................... Linked Documents .......................................................................................................................................................... ......................................................................................................................................................... Create Document Artifact Link......................................................................................................................................................... Document to UML Element Edit......................................................................................................................................................... Linked Documents ......................................................................................................................................................... Hyperlink From Linked Document ......................................................................................................................................................... Create Element From Document ......................................................................................................................................................... Replace or Delete Documents ......................................................................................................................................................... Create Linked Document Templates Edit......................................................................................................................................................... Linked Document Templates
IX
Contents
......................................................................................................................................................... Reverse Connector Set ......................................................................................................................................................... Association Specializations ......................................................................................................................................................... Show Uses Arrow Head ......................................................................................................................................................... Tree Style Hierarchy Connector Properties .......................................................................................................................................................... ......................................................................................................................................................... Connector Constraints ......................................................................................................................................................... Source Role ......................................................................................................................................................... Target Role Role Tagged Values .......................................................................................................................................................... Message Scope .......................................................................................................................................................... 448 449 449 450 451 452 453 455 455 456
465
467 468 469 470 470 472 472 473 474 475
Contents
X
512 514 519 520 521 522 523 525 528 529 530 533 535 537 539 543 544 547
Model Gateway ......................................................................................................................................... Model Activity ......................................................................................................................................... Model Pool ......................................................................................................................................... ......................................................................................................................................................... Create Assignments ......................................................................................................................................................... Generate BPEL ......................................................................................................................................................... Create a BPEL Web Service ......................................................................................................................................................... BPEL Model Validation BPMN .......................................................................................................................................................... ......................................................................................................................................................... Change BPMN Element Appearance Data Flow Diagrams .......................................................................................................................................................... ICONIX .......................................................................................................................................................... Mind Mapping .......................................................................................................................................................... SoaML .......................................................................................................................................................... SPEM .......................................................................................................................................................... ......................................................................................................................................................... SPEM Toolbox Pages SysML .......................................................................................................................................................... ......................................................................................................................................................... SysML Parametric Models ......................................................................................................................................................... Simulate a SysML Model
569
573 574
585
589 590 591 592 593
XI
Contents
......................................................................................................................................................... Upsize to Access 2007 ......................................................................................................................................................... Upsize to Sybase ASA ......................................................................................................................................................... Upsize to Progress OpenEdge ......................................................................................................................................................... Upsize to MSDE ......................................................................................................................................................... Upsize to PostgreSQL ......................................................................................................................................................... Upsize to Oracle 9i, 10g or 11g ......................................................................................................................................................... Upsize to SQL Server ......................................................................................................................................................... Upsize to MySQL Set ......................................................................................................................................................... Up an ODBC Driver MySQL ODBC Driver ......................................................................................................................................... PostgreSQL ODBC Driver ......................................................................................................................................... ASA ODBC Driver ......................................................................................................................................... Progress OpenEdge ODBC Driver ......................................................................................................................................... ......................................................................................................................................................... Create a Repository Access 2007 ......................................................................................................................................... MySQL Repository ......................................................................................................................................... SQL Server Repository ......................................................................................................................................... Oracle Server Repository ......................................................................................................................................... PostgreSQL Repository ......................................................................................................................................... Adaptive Server Anywhere Repository ......................................................................................................................................... MSDE Server Repository ......................................................................................................................................... Progress OpenEdge Repository ......................................................................................................................................... ......................................................................................................................................................... Connect to a Data Repository MySQL Data Repository ......................................................................................................................................... SQL Server Data Repository ......................................................................................................................................... Oracle Data Repository ......................................................................................................................................... PostgreSQL Data Repository ......................................................................................................................................... ASA Data ......................................................................................................................................... Repository MSDE Server Data Repository ......................................................................................................................................... Progress OpenEdge Repository ......................................................................................................................................... The WAN Optimizer .......................................................................................................................................................... Copy a Base Project .......................................................................................................................................................... 594 595 597 598 599 600 602 604 605 606 608 611 615 617 617 618 620 623 623 626 628 628 629 629 632 635 638 641 644 644 648 649
Contents
XII
668 669
MOF
................................................................................................................................... 699
701 702
XIII
Contents
Connect an Enterprise Architect Model to Version Control using TFS ......................................................................................................................................... Use Version Control .......................................................................................................................................................... ......................................................................................................................................................... Package Version Control Menu ......................................................................................................................................................... Configure Controlled Package Use......................................................................................................................................................... Existing Configuration ......................................................................................................................................................... Validate Package Configurations ......................................................................................................................................................... Check In and Check Out Packages ......................................................................................................................................................... Include Other Users' Packages ......................................................................................................................................................... Apply Version Control To Branches ......................................................................................................................................................... Export Controlled Model Branch ......................................................................................................................................................... Import Controlled Model Branch ......................................................................................................................................................... Review Package History ......................................................................................................................................................... Refresh View of Shared Project ......................................................................................................................................................... Resynchronize the Status of Version Controlled Packages Offline Version Control .......................................................................................................................................................... 728 731 732 734 735 735 736 738 738 739 740 741 741 742 743
Contents
XIV
824
825 827 828 829
XV
Contents
Import Test From Other Elements .......................................................................................................................................................... Import Responsibility or Constraint as Test .......................................................................................................................................................... Create Maintenance Item From Test .......................................................................................................................................................... Testing .......................................................................................................................................................... Details Report Show Test Script Compartments .......................................................................................................................................................... Test Documentation .......................................................................................................................................................... 851 852 853 853 854 855
882
885 886 888 889 889 890 890
Contents
XVI
906
XVII
Contents
Visual Basic Conventions .......................................................................................................................................................... 962
965
968 968 970 971 972 973 974 975 976 977 977 978 979 979 980 980 982 982 983 984 985
Contents
XVIII
1026 1027 1030 1032 1033 1034 1035
Record For a Thread Automatically ......................................................................................................................................... ......................................................................................................................................................... Recording Markers ......................................................................................................................................................... Generate the Sequence Diagram ......................................................................................................................................................... Include State Transitions Enable Capture of State Transitions ......................................................................................................................................... Create a ......................................................................................................................................... State Machine and States Add Constraints .........................................................................................................................................
1041
1042 1044 1050 1050 1052 1052 1054 1055 1056
1071
A Data................................................................................................................................... 1073 Model Diagram Create................................................................................................................................... 1074 a Table Set Table Properties ................................................................................................................................... 1075
Set Table Owner .......................................................................................................................................................... Set MySQL Options .......................................................................................................................................................... Set Oracle Table Properties .......................................................................................................................................................... 1077 1078 1078
Create................................................................................................................................... 1081 Columns Create................................................................................................................................... 1084 Oracle Packages Primary Key ................................................................................................................................... 1085
SQL Server Non Clustered Keys .......................................................................................................................................................... 1086
XIX
Contents Index, ................................................................................................................................... 1098 Trigger, Check Constraint Generate DDL For a Table ................................................................................................................................... 1100 Generate DDL for a Package ................................................................................................................................... 1102 Data Type Conversion Procedure ................................................................................................................................... 1106 Data Type Conversion for a Package ................................................................................................................................... 1107 DBMS ................................................................................................................................... 1109 Datatypes Import................................................................................................................................... 1111 Database Schema from ODBC
Select .......................................................................................................................................................... a Data Source Select .......................................................................................................................................................... Tables The Imported Class Elements .......................................................................................................................................................... 1113 1114 1114
1117
1121
Import................................................................................................................................... 1122 Transformations Transformation Templates ................................................................................................................................... 1123 Built-in Transformations ................................................................................................................................... 1125
C# Transformation .......................................................................................................................................................... DDL Transformation .......................................................................................................................................................... EJB Transformations .......................................................................................................................................................... Java Transformation .......................................................................................................................................................... JUnit Transformation .......................................................................................................................................................... NUnit Transformation .......................................................................................................................................................... WSDL .......................................................................................................................................................... Transformation XSD Transformation .......................................................................................................................................................... 1125 1127 1131 1133 1134 1136 1138 1139
1154
1156 1157 1159 1159 1162 1163 1164 1166 1167 1170 1171 1172 1173 1174 1175 1176
Contents
XX
1177 1178 1179 1179 1180 1181 1181 1184 1184 1185 1189 1189 1190 1191 1192 1195 1197 1199 1200 1200 1201 1202 1203 1203 1204 1205 1205 1206 1206 1207 1208 1208 1210 1211 1212 1212 1212 1213 1215 1215 1216 1217 1218 1219 1220 1220 1221 1222 1223 1223 1224 1225 1227 1228 1229 1230 1231
................................................................................................................................... Character Formatting ................................................................................................................................... Paragraph Formatting ................................................................................................................................... Tab Support ................................................................................................................................... Page Breaks and Repagination Headers................................................................................................................................... and Footers ................................................................................................................................... Hyperlinks and Bookmarks ................................................................................................................................... Table Commands Sections................................................................................................................................... and Columns ................................................................................................................................... Stylesheets and Table of Contents ................................................................................................................................... User-Defined Section Numbering ................................................................................................................................... Frames and Drawing Objects ................................................................................................................................... Search and Replace Commands ......................................................................................................................................................... Import RTF Template ......................................................................................................................................................... Resource Documents ......................................................................................................................................................... Document Options ......................................................................................................................................................... Element Filters ......................................................................................................................................................... Other Filters ......................................................................................................................................................... Project Constants ......................................................................................................................................................... Word Substitution ......................................................................................................................................................... Language Substitution The Legacy RTF Report Generator .......................................................................................................................................................... ......................................................................................................................................................... Document a Single Element ......................................................................................................................................................... The RTF Report Dialog ......................................................................................................................................................... Set the Main RTF Properties ......................................................................................................................................................... Apply a Filter ......................................................................................................................................................... Exclude Elements ......................................................................................................................................................... RTF Diagram Format ......................................................................................................................................................... Project Include ......................................................................................................................................................... RTF Report Options ......................................................................................................................................................... RTF Report Selections ......................................................................................................................................................... Generate the Report ......................................................................................................................................................... Legacy RTF Style Templates ......................................................................................................................................................... Save as Document ......................................................................................................................................................... Custom Language Settings Use MS Word .......................................................................................................................................................... ......................................................................................................................................................... Open a Report in Microsoft Word ......................................................................................................................................................... Change Linked Images to Embedded ......................................................................................................................................................... RTF Bookmarks ......................................................................................................................................................... Other Features of Word Add Table of Contents ......................................................................................................................................... Add Table of Figures ......................................................................................................................................... Add Headers and Footers ......................................................................................................................................... Manipulate Tables in Word ......................................................................................................................................... Refresh Links ......................................................................................................................................... Other Documents .......................................................................................................................................................... ......................................................................................................................................................... Dependency Report ......................................................................................................................................................... Diagram Only Report ......................................................................................................................................................... Implementation Report Set Target Types Dialog ......................................................................................................................................... ......................................................................................................................................................... Testing Report Virtual .......................................................................................................................................................... Documents ......................................................................................................................................................... Create Master Document ......................................................................................................................................................... Create Model Document ......................................................................................................................................................... Add Packages to Model Document ......................................................................................................................................................... Delete Package in Model Document ......................................................................................................................................................... Document Order ......................................................................................................................................................... Generate the Document
XXI
Contents
Create .......................................................................................................................................................... an HTML Report The Generate HTML Report Dialog .......................................................................................................................................................... Web Style Templates .......................................................................................................................................................... HTML Template Fragments .......................................................................................................................................................... 1233 1234 1235 1237
1245
1247 1248 1250 1252 1255 1256 1256 1258 1260 1261 1261 1261 1262 1262 1263 1263 1263 1263 1264 1264 1266 1266 1266 1267 1267 1268 1270 1270 1270 1271 1273 1274 1277 1280 1282 1283 1284 1284 1285 1286 1288 1288 1288 1289 1290 1291 1293 1294 1295 1297 1298
Contents
XXII
1300 1301 1304 1306 1306 1308 1310 1311 1312 1313 1314
Properties ......................................................................................................................................... ......................................................................................................................................................... Deployment Diagram ......................................................................................................................................................... Component Diagram Extended Diagrams .......................................................................................................................................................... ......................................................................................................................................................... Analysis Diagram ......................................................................................................................................................... Custom Diagram ......................................................................................................................................................... Requirements Diagram ......................................................................................................................................................... Maintenance Diagram ......................................................................................................................................................... User Interface Diagram ......................................................................................................................................................... Database Schema ......................................................................................................................................................... Business Modeling/Interaction
XXIII
Contents
......................................................................................................................................................... Region ......................................................................................................................................................... Send ......................................................................................................................................................... State Composite State ......................................................................................................................................... ......................................................................................................................................................... State Lifeline ......................................................................................................................................................... State/Continuation Continuation ......................................................................................................................................... State Invariant ......................................................................................................................................... ......................................................................................................................................................... Structured Activity ......................................................................................................................................................... State Machine ......................................................................................................................................................... Synch ......................................................................................................................................................... System Boundary Boundary Element Settings ......................................................................................................................................... ......................................................................................................................................................... Terminate ......................................................................................................................................................... Trigger ......................................................................................................................................................... Use Case Use Case Extension Points ......................................................................................................................................... Rectangle Notation ......................................................................................................................................... ......................................................................................................................................................... Value Lifeline Structural Diagram Elements .......................................................................................................................................................... ......................................................................................................................................................... Artifact ......................................................................................................................................................... Class Active Classes ......................................................................................................................................... Parameterized Classes (Templates) ......................................................................................................................................... ......................................................................................................................................................... Collaboration ......................................................................................................................................................... Collaboration Occurrence ......................................................................................................................................................... Component ......................................................................................................................................................... Deployment Spec ......................................................................................................................................................... Device ......................................................................................................................................................... Document Artifact ......................................................................................................................................................... Enumeration ......................................................................................................................................................... Execution Environment ......................................................................................................................................................... Expose Interface ......................................................................................................................................................... Information Item ......................................................................................................................................................... Interface ......................................................................................................................................................... Node ......................................................................................................................................................... Object Run-time......................................................................................................................................... State Define a................................................................................................................................... Run-time Variable Remove................................................................................................................................... a Defined Variable ................................................................................................................................... Define an Object State ......................................................................................................................................................... Package ......................................................................................................................................................... Part Add Property Value ......................................................................................................................................... ......................................................................................................................................................... Port Add a Port to an Element ......................................................................................................................................... Inherited ......................................................................................................................................... and Redefined Ports ......................................................................................................................................................... Primitive ......................................................................................................................................................... Qualifiers ......................................................................................................................................................... Signal Inbuilt .......................................................................................................................................................... and Extension Stereotypes ......................................................................................................................................................... Analysis Stereotypes ......................................................................................................................................................... Boundary Create a ......................................................................................................................................... Boundary ......................................................................................................................................................... Composite Elements ......................................................................................................................................................... Control Create a ......................................................................................................................................... Control Element ......................................................................................................................................................... Entity 1360 1361 1361 1362 1364 1365 1365 1367 1367 1369 1370 1370 1371 1372 1372 1373 1374 1375 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1385 1386 1386 1387 1387 1388 1389 1389 1390 1390 1391 1391 1392 1392 1392 1393 1394 1394 1395 1396 1397 1397 1398 1398 1399 1400 1400 1401 1401
Contents
XXIV
1402 1402 1403 1403 1406 1407 1408 1408 1409 1410 1411 1411 1413
Create an Entity ......................................................................................................................................... ......................................................................................................................................................... Event ......................................................................................................................................................... Feature ......................................................................................................................................................... Hyperlinks ......................................................................................................................................................... N-Ary Association ......................................................................................................................................................... Packaging Component ......................................................................................................................................................... Process ......................................................................................................................................................... Requirements ......................................................................................................................................................... Screen ......................................................................................................................................................... Test Case ......................................................................................................................................................... Table UI ......................................................................................................................................................... Control Element ......................................................................................................................................................... Web Stereotypes
XXV
Contents
Represents .......................................................................................................................................................... Representation .......................................................................................................................................................... Trace .......................................................................................................................................................... Transition .......................................................................................................................................................... Use .......................................................................................................................................................... 1451 1451 1452 1452 1454
1457
Finding Your License Information ................................................................................................................................... 1458 Add License Key ................................................................................................................................... 1459 Keystore Troubleshooting ................................................................................................................................... 1461 Upgrade an Existing License ................................................................................................................................... 1462 Register Add-In ................................................................................................................................... 1465
1467
1468 1470 1470 1471 1472 1473 1474 1475 1476 1478 1479 1481 1481 1482 1483 1484 1484 1485 1486 1486 1487 1487 1488 1489 1491 1491
Contents
XXVI
1508 1509 1509 1510 1510 1511 1511 1512 1512 1513 1514 1515 1515 1516 1516 1517 1518 1519 1519 1520 1520 1521 1521
Working with MTS Files .......................................................................................................................................................... Customize Toolbox Profiles .......................................................................................................................................................... ......................................................................................................................................................... Create Toolbox Profiles Toolbox Page Attributes ......................................................................................................................................... ......................................................................................................................................................... Create Hidden Sub-Menus ......................................................................................................................................................... Override Default Toolboxes ......................................................................................................................................................... Assign Icons To Toolbox Items ......................................................................................................................................................... Enterprise Architect Toolboxes ......................................................................................................................................................... Elements Used in Toolboxes ......................................................................................................................................................... Connectors Used In Toolboxes Create .......................................................................................................................................................... Diagram Profiles ......................................................................................................................................................... Built-In Diagram Types ......................................................................................................................................................... Attribute Values - stylex & pdata Create .......................................................................................................................................................... Tasks Pane Profiles ......................................................................................................................................................... Define Tasks Pane Toolboxes Built-In Tasks Pane Commands ......................................................................................................................................... Run Add-In Functions ......................................................................................................................................... ......................................................................................................................................................... Define Tasks Pane Contexts ......................................................................................................................................................... Allocate Tasks Pane Contexts ......................................................................................................................................................... Save a Tasks Pane Profile Define .......................................................................................................................................................... Validation Configuration Incorporate Model Templates .......................................................................................................................................................... Deploy.......................................................................................................................................................... An MDG Technology
XXVII
Contents
The Code Template Editor in SDK .......................................................................................................................................................... ......................................................................................................................................................... Custom Templates ......................................................................................................................................................... Override Default Templates ......................................................................................................................................................... Add New Stereotyped Templates ......................................................................................................................................................... Create Custom Language Template 1579 1579 1581 1581 1582
Contents
XXVIII
1612 1612 1613 1613 1614 1615 1616 1616 1616 1617 1617 1618 1618 1618 1619 1619 1620 1624 1624 1625 1625 1625 1626 1626 1627 1627 1628 1629 1630 1630 1631 1632 1632 1633 1633 1634
EA_OnContextItemDoubleClicked ......................................................................................................................................... EA_OnNotifyContextItemModified ......................................................................................................................................... ......................................................................................................................................................... Compartment Events EA_QueryAvailableCompartments ......................................................................................................................................... EA_GetCompartmentData ......................................................................................................................................... ......................................................................................................................................................... Model Validation Broadcasts EA_OnInitializeUserRules ......................................................................................................................................... EA_OnStartValidation ......................................................................................................................................... EA_OnEndValidation ......................................................................................................................................... EA_OnRunElementRule ......................................................................................................................................... EA_OnRunPackageRule ......................................................................................................................................... EA_OnRunDiagramRule ......................................................................................................................................... EA_OnRunConnectorRule ......................................................................................................................................... EA_OnRunAttributeRule ......................................................................................................................................... EA_OnRunMethodRule ......................................................................................................................................... EA_OnRunParameterRule ......................................................................................................................................... Model Validation Example ......................................................................................................................................... ......................................................................................................................................................... EA_OnRetrieveModelTemplate Custom Views .......................................................................................................................................................... ......................................................................................................................................................... Create a Custom View MDG Add-Ins .......................................................................................................................................................... ......................................................................................................................................................... MDG Events MDGBuild Project ......................................................................................................................................... MDGConnect ......................................................................................................................................... MDGDisconnect ......................................................................................................................................... MDGGetConnectedPackages ......................................................................................................................................... MDGGetProperty ......................................................................................................................................... MDGMerge ......................................................................................................................................... MDGNewClass ......................................................................................................................................... MDGPostGenerate ......................................................................................................................................... MDGPostMerge ......................................................................................................................................... MDGPreGenerate ......................................................................................................................................... MDGPreMerge ......................................................................................................................................... MDGPreReverse ......................................................................................................................................... MDGRunExe ......................................................................................................................................... MDGView .........................................................................................................................................
XXIX
Contents
Author ......................................................................................................................................... Client ......................................................................................................................................... Collection ......................................................................................................................................... Datatype......................................................................................................................................... EventProperties ......................................................................................................................................... EventProperty ......................................................................................................................................... ModelWatcher ......................................................................................................................................... Package ......................................................................................................................................... ProjectIssues ......................................................................................................................................... ProjectResource ......................................................................................................................................... PropertyType ......................................................................................................................................... Reference ......................................................................................................................................... Stereotype ......................................................................................................................................... Task ......................................................................................................................................... Term ......................................................................................................................................... ......................................................................................................................................................... Element Constraint ......................................................................................................................................... Effort ......................................................................................................................................... Element ......................................................................................................................................... File ......................................................................................................................................... Issue (Maintenance) ......................................................................................................................................... Metric ......................................................................................................................................... Requirement ......................................................................................................................................... Resource ......................................................................................................................................... Risk ......................................................................................................................................... Scenario......................................................................................................................................... TaggedValue ......................................................................................................................................... Test ......................................................................................................................................... ......................................................................................................................................................... Element Features Attribute ......................................................................................................................................... AttributeConstraint ......................................................................................................................................... AttributeTag ......................................................................................................................................... CustomProperties ......................................................................................................................................... EmbeddedElements ......................................................................................................................................... Method ......................................................................................................................................... MethodConstraint ......................................................................................................................................... MethodTag ......................................................................................................................................... Parameter ......................................................................................................................................... Partitions ......................................................................................................................................... Properties ......................................................................................................................................... Transitions ......................................................................................................................................... ......................................................................................................................................................... Connector ConnectorConstraint ......................................................................................................................................... Connector ......................................................................................................................................... ConnectorEnd ......................................................................................................................................... ConnectorTag ......................................................................................................................................... RoleTag ......................................................................................................................................... ......................................................................................................................................................... Diagram Diagram ......................................................................................................................................... DiagramLinks ......................................................................................................................................... DiagramObjects ......................................................................................................................................... SwimlaneDef ......................................................................................................................................... Swimlanes ......................................................................................................................................... Swimlane ......................................................................................................................................... ......................................................................................................................................................... Project Interface Project ......................................................................................................................................... ......................................................................................................................................................... Code Samples Open the......................................................................................................................................... Repository 1661 1662 1663 1664 1665 1665 1666 1666 1670 1671 1672 1672 1673 1674 1675 1675 1677 1677 1678 1684 1685 1686 1686 1687 1688 1689 1689 1690 1691 1692 1694 1695 1695 1696 1696 1698 1699 1699 1700 1701 1702 1703 1703 1704 1707 1708 1709 1710 1711 1714 1715 1716 1717 1717 1718 1718 1729 1729
Contents
XXX
1729 1730 1730 1731 1732 1732 1733 1735 1737 1737 1738
Iterate Through a .EAP File ......................................................................................................................................... Add and ......................................................................................................................................... Manage Packages Add and ......................................................................................................................................... Manage Elements Add a Connector ......................................................................................................................................... Add and ......................................................................................................................................... Manage Diagrams Add and ......................................................................................................................................... Delete Features Element ......................................................................................................................................... Extras Repository Extras ......................................................................................................................................... Stereotypes ......................................................................................................................................... Work with Attributes ......................................................................................................................................... Work with Methods .........................................................................................................................................
1741
................................................................................................................................... 1742 ................................................................................................................................... 1744 ................................................................................................................................... 1745 ................................................................................................................................... 1748 ................................................................................................................................... 1750 ................................................................................................................................... 1751 ................................................................................................................................... 1752 ................................................................................................................................... 1753 ................................................................................................................................... 1754 ................................................................................................................................... 1756 ................................................................................................................................... 1757 ................................................................................................................................... 1758 ................................................................................................................................... 1760 ................................................................................................................................... 1761 ................................................................................................................................... 1762 ................................................................................................................................... 1765 ................................................................................................................................... 1766 ................................................................................................................................... 1768 ................................................................................................................................... 1771 ................................................................................................................................... 1773 ................................................................................................................................... 1774
Index
1775
Foreword
Foreword
This user guide provides an introduction to the features contained in Enterprise Architect - a UML modeling tool for developing and building software systems with UML.
Part
Welcome to Sparx Systems Enterprise Architect, a UML 2.1 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. This user guide provides tutorials, guidance and reference material to help you use Enterprise Architect to perform: UML Model Management 585 Modeling With Enterprise Architect 270 Extending the Scope of UML With Enterprise Architect Requirements Management 569 RTF and HTML Document Creation 1154 (Reports) Project Management 824 Code Engineering 882 Visualization of Code Execution (Debugging) 965 Data Modeling 1071 MDA Transformations 1117 XML Technology 1041 (SOA) Support
5
465
for further details of what Enterprise Architect can do and what you can
Enterprise Architect makes extensive use of UML, so we provide a UML Dictionary 1245 of diagrams, elements and connectors. Enterprise Architect also includes a Software Developers' Kit (SDK for Enterprise Architect 1467 ) that enables you to extend and customize the tool.
15
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: support@sparxsystems.com.
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 11 edition) stakeholders who can study a model but not
change or manage it. You can make the project .EAP file available on a shared network drive 674 , or replicate 675 the .EAP file for complex distributed development. Alternatively, you can develop the project in one of several shared DBMS repositories 593 , 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 679 to distribute and update frameworks and other package-based model structures. You control changes through the version control 704 repository. Enterprise Architect provides a data transfer wizard 655 that enables you to upsize or downsize the complete model for maximum flexibility, and it enables you to export and import reference data 818 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 1155 or HTML 1233 output. You can generate complex and detailed reports from Enterprise Architect with the information you require in the format your company or client demands.
models (PSMs). One PIM can be used to generate and synchronize multiple PSMs, providing a significant productivity boost.
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 1071 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.
forward generate DDL scripts to create database structures Connect to shared database repositories using MS SQL Server, MySQL, Oracle and more Manage, track and control change using baseline model merge and auditing capabilities Centralize enterprise-wide documentation of processes and information systems Model dependencies between elements, system dynamics and state Model class hierarchies, deployment, components and implementation details Record project issues, tasks and system glossary Assign resources to model elements and track effort expended against required effort Testing support for test cases, JUnit and NUnit Integrated Debug Workbench for visualizing executable Java and .Net applications, instantiating run-time model objects and generating Sequence diagrams from a stack trace Migrate changes across a distributed environment using Controlled XMI Packages Manage Version control though XMI using SCC CVS and Subversion configurations Inbuilt user and group security and access control management Distributed development through shareable files, use of shared repositories in a range of major Database Management Systems, file replication, data transfer, and import and export of reference data Share models using the latest XMI 2.1 format Import models in XMI format from other tools Built-in Model Driven Architecture (MDA) Transformations, and facilities to import or create others Facilities to import database schema, XSD and WSDL source, .NET and Java binaries Use UML Profiles to create custom extensions for domain-specific modeling Save and load complete diagrams as UML Patterns Analyze and trace relationships between elements using the tabular Relationship Matrix Generate executable business logic from rule tasks and trace to natural language business rules Transform behavioral models into executable source code for software and hardware description languages (HDLs) such as Verilog, VHDL, and SystemC Simulate SysML parametric models Software Developers' Kit for scripting, customizing and automating Enterprise Architect A range of internal and external commercial MDG Add-Ins 11 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 Enterprise Architect Editions 8 topic.
Tip: To help you understand the differences between these editions and the advantages and limitations of each, the Trial version 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 11 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.
10
As explained above, the Business and Software Engineering edition incorporates a number of MDG Technologies 11 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 fact 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.
1998-2009 Sparx Systems Pty Ltd
11
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.
1.1.4 EA Lite
EA Lite is a free, read-only edition of Enterprise Architect that enables people such as project sponsors to review the project without making any changes. Users of EA Lite can also manipulate information in: The Project Forum 243 , where readers can create and respond to posts, and link their comments to elements The Source Code Viewer 183 , where readers can open and edit external source code files, debug code, and configure and run package build scripts The File menu 71 , where readers can copy the project or create a shortcut to access it The Relationship Matrix, where readers can export the matrix contents 462 to a CSV file to be opened in a spreadsheet application The Default Hours 829 tab to review project metrics. You can download the EA Lite edition (as the Enterprise Architect Viewer) from the Sparx Systems website at http://www.sparxsystems.com/products/ea/downloads.html.
12
Zachman Framework The Open Group Architecture Framework (TOGAF) Department Of Defense Architecture Framework - Ministry Of Defence Architecture Framework (DoDAF-MODAF) Data Distribution Service (DDS) Python (for Enterprise Architect versions 4.5 to 5.0, integrated in later versions) (* free product! *) CORBA (* free product! *) Java Beans (* free product! *) Testing (* free product! *) MDG Integration For: Eclipse 3.3 Visual Studio 2005 and 2008 Siemens PLM Teamcenter Systems Engineering (TcSE) MDG Link For Eclipse Visual Studio.Net Microsoft Visio (* free product! *) Telelogic DOORS Over time, this list is being extended to include further products. Sparx Systems provide different editions of Enterprise Architect tailored for systems engineering 10 and business engineering 9 , or both 9 together. These editions incorporate several of the above MDG Technologies and other add-ins.
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.
13
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 supplied with Enterprise Architect. It 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 44 . If you have purchased Enterprise Architect and are a registered user, you can also contact Sparx Support to answer any queries or problems.
14
Tasks Pane
The Enterprise Architect Tasks Pane 202 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.
14
Version and release date information for the help files can be found at: www.sparxsystems.com/ea_downloads.htm#Helpfiles, or www.sparxsystems.com/registered/reg_ea_down.htm#Helpfiles (registered users).
1.2.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: support@sparxsystems.com. An online user forum is also available for your questions and perusal, at http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi.
15
Please take the time to read the following legal statements concerning Sparx Systems Enterprise Architect: Software Copyright Notice 15 Enterprise Architect End User Licensing Agreement Acknowledgement of Trademarks 18
15
19
16
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, following the thirty day free evaluation period. "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.
17
EA LITE
Subject to the terms of this Agreement EA LITE 11 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:
18
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
19
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 mike.marquet@altavista.net
Davide Pizzolato
CXImage Library 7-Aug-2001 ing.davide.pizzolato@libero.it
Neil Hodgson
Scintilla editor 1998-2003 neilh@scintilla.org
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.
20
If you are exploring one of the Enterprise Architect trial versions, note that the software operates for a limited period. To continue using Enterprise Architect when the trial period expires, you can purchase and register a full license as explained in the following topics: Order Enterprise Architect 20 Installation 20 Register a Full License 21 . If you already have a full license edition of Enterprise Architect and want to register Add-Ins or upgrade to the Professional, Corporate, Business and Software Engineering, Systems Engineering or Ultimate editions, see the License Management 1457 topic.
1.4.2 Installation
Enterprise Architect is distributed as a single executable setup file (.exe). The Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions require additional files and supplementary installation processes if you plan to use the SQL Server, MySQL, PostgreSQL, Access 2007, Sybase Adaptive Server Anywhere or Oracle 9i, 10g or 11g options (see below). 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
1998-2009 Sparx Systems Pty Ltd
21
22
5. Click on the Add Key button. The Add Registration Key dialog displays. 6. In the Copy registration key field, copy the license key, including the { and } bracket characters (use Copy and Paste from an email to avoid typing mistakes).
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 Add License Key 1459 Upgrade an Existing License Register Add-In 1465
1462
Part
II
24
This guide provides two options to help you gain an understanding of how to perform UML modeling with Enterprise Architect: A brief outline of the types of work and tasks 25 that Enterprise Architect supports, so that you can quickly locate the more detailed explanations of subjects that interest you A Quick Start tutorial to Enterprise Architect that illustrates how to open and create new projects, navigate Enterprise Architect, and use Enterprise Architect to perform various tasks in system and process modeling. It leads on to examining the Enterprise Architect User Interface 40 and work areas applicable to certain Project Roles 37 . 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.
25
Enterprise Architect is a powerful CASE tool for specifying, documenting and building software projects. Using Enterprise Architect's support for UML and its related standards, you can model new complex software and business systems, or visualize and maintain existing systems. This topic introduces the fundamental processes that Enterprise Architect supports.
topic.
topic.
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 Architect enables you to: Forward engineer, reverse engineer, round-trip and synchronize code in a range of programming languages Debug and profile code Model and generate code for XML Technologies Perform database modeling and database design for a range of database management systems Convert model components from one domain to another using Model Driven Architecture (MDA) Transformations. For more information, see the Code Engineering
27
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 the Project Management
824
topic.
Project management discussions and decisions can be communicated to the project through the Project Discussion Forum 243 .
26
The scope of your project management might include upgrades to Enterprise Architect and installation of related technologies. In this case, also see License Management 1457 .
By creating these extensions the Technology Developer can customize the Enterprise Architect modeling process to specific tasks and speed up development. For more information, see SDK For Enterprise Architect
1467
UML Structures
To explain how Enterprise Architect interprets the UML standards and specifications, Sparx Systems provides a UML Dictionary 1245 of diagrams, elements and connectors. You create your projects and models using the Start Page 44 or File Menu 71 , which provide templates 46 on which to base your models You initially create your packages and diagrams using the Toolbars 131 and Menus 71 , and the elements and connectors using the Enterprise Architect UML Toolbox 108 You can also create new structures through the Project Browser 57 , and re-use existing structures using the Project Browser 57 , Model Views 148 , Element List 143 and Model Search 156 .
Extending UML
465
27
topic.
topic.
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 Code Engineering
882
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 MDA Transformations
1117
topic.
28
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 Modeling
1071
topic.
topic.
29
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
589
Create a Project
When you start Enterprise Architect it opens at the Start Page
44
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) 592 dialog displays. 3. You now select one or more model templates 46 (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 57 , on the right-hand side of the screen.
30
Note: You could also quickly create a project by copying an existing base project provided with Enterprise Architect; see the Copy a Base Project 649 topic.
to a model, and
3. In the Name field, type the name of the View. 4. In the Set View Icon Style panel, click on the radio button for the type of View to create. 5. If the model root node had been under version control display, defaulted to selected. Ignore this for now. 6. Click on the OK button.
704 ,
31
. 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 Work With Packages 271 and Add a Package 271 topics and Add Additional Views 662 topic.
Additional Information
For additional information on diagrams and adding them to a project, see UML Diagrams Diagrams 279 .
1247
32
in the Name field, and click on the OK button. Look at the Project Browser, underneath the package in which you created the diagram. The element is listed. 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.
with relationships.
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 215 and Toolbar 422 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 Elements 346 and Paste From the Project Browser 303 .
1316
, and Create
35
Additional Information
For further information on creating a connector through the Project Browser, or with the Quick Linker, see the Create Connector 444 topic and the Create Connections Between Elements 217 topic.
33
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. See the Element Properties
379
Enterprise Architect does not automatically name connectors, but for many connector types you should provide a name that describes the purpose of the connection.
34
451
to identify
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.
You could move Class3 in the Project Browser above Class1, or move the Actors package underneath Classes A. To revert to listing components in alphabetical order, right-click on the package and select the Contents | Reset Sort Order menu option.
1998-2009 Sparx Systems Pty Ltd
35
Additional Information
See the topics on Deleting Components
35
36
.
439
For additional information on moving connectors and elements, see the Arrange Connectors Order Package Contents 58 topic.
36
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 387 topic. However, first you should become more familiar with element and connector properties, through the Quick Start - Define Elements and Relationship Properties 33 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 357 and Delete Connectors 445 topics, and the Delete Views 664 topic.
37
38
Business Analyst
A Business Analyst modeling:
256
Database Administrator
might be responsible for A Database Administrator for:
268
might be responsible
Requirements High-level business processes Business activities Work flows System behavior.
Developing databases Modeling database structures Creating logical data models Generating schema Reverse engineering databases.
Software Architect
A Software Architect
258
Tester
might be responsible for: A Tester
264
Mapping functional requirements of the system Mapping objects in real time Mapping the deployment of objects Defining deliverable components.
Developing test cases Importing requirements, constraints and scenarios Creating Quality Test documentation Tracking element defects and changes.
Software Engineer
A Software Engineer
260
Project Manager
A Project Manager
263
Mapping Use Cases into detailed Classes Defining the interaction between Classes Defining system deployment Defining software packages and the software architecture.
Developer
A Developer
261
Implementation Manager
might be responsible for: An Implementation Manager responsible for:
265
might be
Forward, reverse and round-trip engineering Visualizing the system states Visualizing package arrangements Mapping the flow of code.
Modeling the tasks in rolling-out a project, including network and hardware deployment Assigning and tracking maintenance items on elements (issues, changes, defects and tasks).
Technology Developer
A Technology Developer creating or customizing: UML Profiles UML Patterns Code Templates Tagged Value Types MDG Technologies Add-Ins.
267
Part
III
40
This section provides a detailed exploration of the Enterprise Architect UML Modeling tools and features for modeling software systems and business processes, including: Starting Enterprise Architect 41 The User Interface 42 The Start Page 44 Model Templates 46 The Project Browser 57 The Main Menu 71 The Enterprise Architect UML Toolbox Workspace Toolbars 131 Diagram Tabs 141 View Options 142 Search a Project 161 The Web Browser 172 Arrange Windows and Menus 173 Dockable Windows 177 Code Editors 205 The Quick Linker 215 Defaults and User Settings 218 Keyboard Shortcuts 238 The Project Discussion Forum 243 Register Add-In 1465 The Spell Checker 251
108
41
Open a project file 590 (.EAP file) Create a new project 591 (.EAP file) Connect to a DBMS repository 629 (Corporate and extended editions). 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 Quick Start - Create a Project topic. See Also (For users of the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions) Connect to a MySQL Repository 629 Connect to an SQL Server Repository 632 Connect to an Oracle Repository 635 Connect to a PostgreSQL Repository 638 Connect to an Adaptive Server Anywhere Repository Connect to an MSDE Server Repository 644
29
641
42
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: Package Context Menu (Project Browser) Diagram Context Menu (Project Browser) Element Context Menu (Project Browser) Diagram Context Menu (Diagram) 277 Element Context Menu (Diagram) 335 .
63 69 67
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 238 for a full list of key combinations and their functions, or display the Help Keyboard 242 dialog (select the Help | Keyboard Accelerator Map menu option). You can also customize 101 these function keys.
Diagram View
The large central area of the Enterprise Architect display is the Diagram View 142 . 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 57 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 303 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 148 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.
1998-2009 Sparx Systems Pty Ltd
43
Visual Style
You can configure the look and feel 237 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 173 windows against any edge of the workspace, or move them freely (float them) as you work; for a list of dockable windows, see Dockable Windows 177 Autohide 175 windows so that they display only when you are actually using them Tear off 176 submenus so that they stay open in a convenient (docked) location.
44
When you start Enterprise Architect, the first page displayed is the Start Page.
This page offers the following options: Option Search Use to 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 156 screen. Click on an item in the search results to highlight it in the Project Browser Getting Started Online Resources & Tutorials Configure Options Open a Project File Create a New Project
591 57
Opens the Tasks Pane 202 , to display useful topics and guides for various areas of work in Enterprise Architect. Open the Resources page of the Sparx Systems website, which provides access to a wide range of Enterprise Architect and UML tutorials, demonstrations, examples, Add-Ins and discussions. Display the Options 218 dialog 218 , which enables you to define how Enterprise Architect displays and processes information. Display the Open Project 590 dialog, which you use to open an existing project (where you have more project files than can be listed in the Recent panel). Save a new project and open the Model Wizard Select a different Base Project
649 592
dialog.
Specify a Data Source name to connect to. MySQL 618 , SQL Server 620 , Oracle 9i, 10g and 11g 623 , PostgreSQL 623 , MSDE 628 , Adaptive Server Anywhere 626 , Access 2007 617 and Progress OpenEdge 628 repositories are supported. Note: This feature is available in the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions.
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 73 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 .
45
If your model has a default diagram 326 set, the default diagram opens immediately over the top of the Start Page. You can still access the Start Page from the diagram tabs 141 below the diagram. However, if you have set a shortcut view profile, that overrides the default diagram setting.
1998-2009 Sparx Systems Pty Ltd
45
1. Select File | Open Project from the menu bar or press [Ctrl]+[O]. The Open Project dialog displays.
2. In the Recent Projects panel click on the project to remove. 3. Click on the Remove Selection from List button. 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.
46
The model templates contained in Enterprise Architect are designed to assist in the creation of projects and models for both new and experienced users. Each template provides a framework on which you can create your model. You create models based on the selected templates using the Model Wizard 592 .
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 Requirements Model Template 47 Use Case Model Template 48 Domain Model Template 48 Class Model Template 50 Database Model Template 51 Component Model Template 51 Deployment Model Template 52 Testing Model Template 54 .
47
47
If you are a Technology Developer, you can also create and distribute custom templates own MDG Technology.
1493
as part of your
Online Resources The Business Process Model See Also Business Modeling 550 Analysis Diagram 1306 Business Modeling and Business Interaction Diagrams
1314
48
271
49
A Domain Model shows: The physical and organizational units of the domain; for example, Employee and Flight The relationships between these units; for example, Employee is assigned to Flight The multiplicity 453 of those relationships; for example, one employee can be assigned to no flights, one flight or many flights (represented by the 1 and the * at the ends of that relationship).
50
1295
51
1071
52
1304
53
Online Resources The Physical Model See Also Deployment Diagram 1301 Display Tagged Values 300
54
Online Resources Testing Support in Enterprise Architect See Also Testing 842 Test Case 1410 element Show Test Scripts 854
55
of a
577
56
824
57
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 or paste directly into the current diagram.
303
If you right-click on an item in the Project Browser, 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].
58
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 661 , 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 Use Case View Dynamic View Logical View Description The functional and early analysis View. Contains Business Process and Use Case models. Contains State Charts, Activity and Interaction diagrams. The dynamics of your system. The Class Model and Domain Model View.
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 View Custom View The physical model; what hardware is to be deployed and what software is to run on it. 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
61
59
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 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.
60
The functions of each icon in the toolbar are, from left to right: Create a new Model Package 592 in the project, from a predefined UML or Technology pattern Create a new child package 271 under the selected package Create a new child diagram 279 under the selected package or element Create a new child element 348 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 1156 , HTML report 1233 or Diagram Only 1221 report on the selected package in the Project Browser Provide options to generate source code 895 or DDL 1102 , import a source directory 888 , binary module 889 or database schema 1111 , generate package contents 896 to synchronize with package code, or reset the source code language 935 , 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.
61
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 743 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 897 to code. <MDG Add-In icon> MDG Add-Ins 1625 specify their own icon to denote that this branch of the model belongs 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. Icon Overlay Indicates that... The attribute or operation is scoped as protected.
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions, if Project User Security 745 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 763 topic.
submenu.
62
Menu Option & Function Keys Find in Project Browser [Ctrl]+[Shift]+[F] Expand Branch Collapse Branch Import Model from XMI [Ctrl]+[Alt]+[I] Export Model to XMI [Ctrl]+[Alt]+[E] Rich Text Format (RTF) Report [F8] HTML Report [Shift]+[F8] Diagrams Only Report [Ctrl]+[Shift]+[F8] Copy Reference
Expand all items. Collapse all items. Import a model from an XMI file.
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 the Model node and all subordinate Views and packages. Display the Help topic for the Project Browser.
63
From this menu you can: Configure various settings for the package Manage Baselines 777 and compare them with the current package Create and work with the package XMI file Add model branches 738 (package hierarchies) to version control, and export and import the file that manages changes to branches under version control Retrieve the latest version of the package from the repository; available only for packages that are checked in - Get All Latest is not intended for sharing .EAP files and should only be used when people have their own individual databases Resynchronize the version control status 742 of packages in the model with the status of the package file in the version control provider software Display the Version Control Options dialog 709 Provide a bulk update on the status of a package, this includes status options such as Proposed, Validate and Mandatory Set the namespace root for languages that support namespaces; for more information see the Namespaces 897 topic.
Connect to external Add-Ins and external projects. Add new packages to the model.
64
Menu Option & Function Keys Package Control Add Linked Document [Ctrl]+[Alt]+[D] Paste Diagram Documentation Code Engineering Build and Run Import/Export Transform Current Package [Ctrl]+[Shift]+[H] Show Level Numbering
Use to
63
If you have copied a diagram from another package, paste the diagram into the currently-selected package. Produce a variety of reports and documentation Perform Code Engineering Build, run
66 65 65
in RTF format.
functions.
Add a sequence number to each element in the package, based on the element's position in the package hierarchy 572 . 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.
Show Element List Contents Bookmarks Find in Project Browser [Ctrl]+[Shift]+[F] Copy Reference
143 ,
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.
Save Package as UML Profile Set View Icon Move up Move down Delete <packagename>
466 .
Change the display icon for the selected package. Move the package up in the list. Move the package down the list. Delete the selected package and its contents.
65
Use to
[Ctrl]+[M] [Ctrl]+[W]
[F8]
[Shift]+[F8]
1221
[Ctrl]+[Shift]
457
1213
1222
[Ctrl]+[Alt]+[K]
66
Menu Option & Function Keys Import Source Directory Import Binary Module
889 888
[Ctrl]+[Shift]+[U]
890
[Ctrl]+[Alt]
Import DB schema from ODBC Generate XML Schema Import XML Schema Generate WSDL Import WSDL
1068 1067 1055 1052
1111
935
897
Clear Namespace
[Shift]+[F12]
971 972
Deploy Debug
979 973
[Ctrl]+[Shift]+[Alt]+[F12] [F6]
Step Into
1008
[Shift]+[F6] [Alt]+[F6]
1008
Step Over
1008
[Ctrl+[F6]
988
[Ctrl]+[Alt]+[F6]
1022
1022
1022
67
680
/ Export
Create 68 a child element and diagram (Classifier elements) or a connector to another element. For a Rule Task element, invoke the Rule Composer Rule Modeling.
562
tab in Business
Display the Attribute dialog ready to create a new attribute. Display the Operations dialog ready to create a new operation. Generate the source code for this element. See Generate Source Code
892
Synchronize the element in the diagram with the source code. See Reverse Engineer and Synchronizing 884 .
68
Menu Option & Function Keys View Source Code [F12] Open Source Directory [Ctrl]+[Alt]+[Y] In Diagrams [Ctrl]+[U] Locate in Current Diagram Copy RTF Bookmark Linked Document [Ctrl]+[Alt]+[D] Add Custom Reference [Ctrl]+[J] Copy Reference
Use to
183
of the element.
Locate the element in all diagrams 350 in which it is represented, either as a link or as a classifier of an element on the diagram. Select the element in the current visible diagram. Copy a bookmark
1213
Create a Linked Document (Professional, Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions). See the Linked Documents 424 topic. Set up cross references 351 between elements in a diagram and the selected element in the Project Browser. 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 the element up in the list of elements within this package. Move the element down in the list of elements within this package. Delete the element. Display the Help topic for the Project Browser.
69
View and modify a diagram's properties. Open the diagram in the Diagram View. Display the Element List
143 ,
Copy the diagram for pasting into another location (see Copy a Diagram Copy a bookmark
1213
to other elements).
Prints the currently-selected diagram or diagrams (hold [Ctrl] or [Shift] while selecting). 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 down Delete '<diagram name>' Delete selected items Help
Move the diagram up in the list of diagrams within this package. Move the diagram down in the list of diagrams within this package. Delete the selected diagram. Delete several selected diagrams (hold [Ctrl] or [Shift] while selecting). Display the Help topic for the Project Browser.
183
Display the Properties dialog for the operation. Delete the operation. 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.
1022
topic.
70
You can display an equivalent context menu for an attribute by right-clicking on the attribute in the Project Browser.
71
The Enterprise Architect Main Menu provides mouse-driven access to many high-level functions related to the project life cycle, along with administration functions.
In order, the menus available are the: File 71 menu Edit 76 menu View 78 menu Project 81 menu Diagram 86 menu Element 87 menu Tools 91 menu Add-Ins 104 menu Settings 105 menu Window 106 menu Help 107 menu.
The above topics provide an overview of the functions available from the Main menu, and their general purposes.
591 .
Open any type of source file (code, XML, DDL) for editing Close the current project. Save the current model the current model.
73
183 .
(This option is also active in the 'Lite Architect.) Reload Current Project [Ctrl]+[Shift]+[F11] Print Setup Page Setup Reload the current project the Project Browser).
741
Configure your printer's settings. Configure the page settings for printing.
72
Use to
Preview
72
Print the currently displayed diagram. Enterprise Architect provides facilities to change the scale 329 of the printed diagram (the number of pages it takes up) and to print or omit page headers and footers 321 on the diagram.
Select from a list of the most recently opened projects. Exit Enterprise Architect.
73
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 142 . Notes: These options are not valid for a copy of the model. If specified, the shortcut views override any default diagram
86
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 73 to open (for example, if you are specifying a working environment in advance, perhaps for other users) Capture the current Enterprise Architect work environment 75 to access the model at exactly the same point in exactly the same environment when you resume work.
74
2. Select the File | Save Project As menu option. The Save As dialog displays.
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 76 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 Project Discussion Forum 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.
75
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.
76
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 76 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 73 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:
EAConnectString: ora10_db --- DBType=3;ConnectEx=+wkIE;B?e 52+H`"e?r-pb_ZyAI3a]Vsfh8p];Co\d/bnX$5<(;'US"^GxvbbRsK{*%AwL4y1{P<je.%R1 ?AY;y'!7pw$X%)_EwLXWpKg7tzLF=T
Undo
318
77
Use to
undone.) Redo [Ctrl]+[Y] Copy [Ctrl]+[C] Re-apply the last undone action. 1. Copy the selected elements to the MS Windows clipboard. To paste the selected elements, see the Paste Elements submenu 77 . 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 219 dialog. Add to Project Clipboard [Ctrl]+[Space] Clear Project Clipboard Paste Element(s) Select All Select By Type Clear Selection Find in Model [Ctrl]+[F] Bookmark Selected [Shift]+[Space] Clear All Bookmarks Add the current element to the Enterprise Architect clipboard.
Clear any elements from the Enterprise Architect clipboard. Paste clipboard elements into current diagram. See the Paste Elements submenu. Select all elements concurrently on the current diagram. Specify a particular type of element to select. Deselect all elements. Search the entire project
161 for 77
Bookmark 880 the selected element(s). If the selected element is already bookmarked, this option removes the bookmark. Clear bookmarks
880
Delete Selected Element(s) Delete the selected element from the diagram. [Ctrl]+[D]
303
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
303
element.
78
Menu Option & Function Keys Paste Image from Clipboard [Ctrl]+[Shift]+[Insert]
Use to
Paste the element in the Enterprise Architect Clipboard into the same diagram or a different diagram, as a metafile (that is, a definition of the 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.
window.
window. window.
1311
window.
108 .
Show or hide the Enterprise Architect UML Toolbox Show or hide the Resources
180
window.
183
Show or hide the Source Code Viewer Show or hide the Scripter
185
window.
window.
79
Display the Debug Workbench options. See View Submenus Show or hide the Tasks Pane Show or hide the Notes
195 202 .
window.
194
window.
196
window.
201 .
window.
202
window.
148
window.
Show or hide the Pan and Zoom window, Element Browser window, Relationships window, Rules and Scenarios window, web browser and Layout Palette window. See View Submenus 79 . Show or hide individual toolbars. See View Submenus
79
Display the current diagram or package in a context-sensitive, editable table, the Element List 143 . Open the Enterprise Architect Model Search Open the Relationship Matrix
457 156
79
Menu Option & Function Keys Use to other by connector type. Discussion Forum [Ctrl]+[Alt]+[U] Audit View Show Grid Snap to Grid Visual Style Visual Layouts Open the Project Discussion Forum
243 .
770 ,
Show or hide the diagram grid. See View Submenus See View Submenus See View Submenus
80 80 80
. . .
80
Diagram 135 Current Element 135 Current Connector 136 Format Tool 136 Status Bar 138 Workspace Views 137 Other Views 138
Hide or redisplay the diagram caption bar at the top or bottom of a diagram. The caption bar is illustrated below:
81
.
82
See Source Code Engineering Submenu See Build and Run Submenu
83
.
84 84
See Database Engineering Submenu See Model Transformations Submenu See Model Validation Submenu See Web Services Submenu See XML Schema Submenu See Security Submenu
85 84 85 84
. .
. .
.
85
Store a model branch as a snapshot or baseline 777 . Available in the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions. Set Use Case Metrics
828
Use to Generate a report for the currently selected package in Rich Text Format 1155 . Generate a report for the currently selected package in HTML Generate an RTF report containing only diagrams
1221 1233
format.
855 .
82
Menu Option & Function Keys Issues Glossary Implementation Details Dependency Details Testing Details Resource and Tasking Details
Generate an RTF report of the model's Glossary Generate an implementation report package. Generate a dependency report Generate test details View resource details
853
1220 1222
837 .
Use to
895
Import
888
889 . 886
886
with the file extension .C or .H. programming language with the file extension . programming language with the file extension . programming language with the file
887
886
Import code written in the Delphi extension .PAS. Import code written in the Java extension .JAVA. Import code written in PHP
887
887
887
with the file extension .PHP, .PHP4, .INC. with the file extension .PY.
887
887
83
Use to
extension .FRM, .CLS, .BAS or .CTL. Import code written in the VB.Net extension .VB.
887
965 .
Build 970 the application for your current script. Execute the Build command in the Package Build Scripts 967 dialog. Execute the Test dialog. Execute the Run dialog.
971
command you configured in the Package Build Scripts command you configured in the Package Build Scripts
967
972
967
979
Run the application and Debug Scripts 967 dialog. Pause and restart Step into Step over Step out Stop
988
1008 1008
973
1008
1008
Start Debug Recording Start recording Stop Debug Recording Auto Record Thread
1022
Autorecord 1026 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. 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 a Sequence diagram
1022
Show/Hide Execution
84
data source.
1102
Menu Option & Function Keys Use to Validate Selected [Ctrl]+[Alt] +[V] Cancel Validation Configure Validate 665 a selected element, diagram or package from the Project Browser. Cancel the validation process. Configure the Validation
665
85
engineer a W3C XML Schema (XSD) file as a UML Class model. engineer a UML Class model to a W3C XML Schema (XSD) file.
1052
Use to
747 ,
Add, modify and remove security groups permissions. View and manage element locks
757 . 759 .
including maintaining
Switch the login to a different user ID. View and delete your own locks Enable or disable user security model. Toggle the security policy Add encryption
757 747 764 . 746
in force.
to your password.
734
709
735
86
Use to
743
Export
680
695
692 .
Export a group
689
of multiple packages.
View and edit the <type> Diagram: <name> dialog for the current diagram. Automatically layout diagrams).
293
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 761 .
Save the current position of all diagram elements. Save the diagram as a bitmap (.BMP), GIF (.GIF) or Windows Metafile (. WMF). 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 219 dialog.
1998-2009 Sparx Systems Pty Ltd
87
Menu Option & Function Keys Save UML Pattern Swimlanes and Matrix Visible Relations [Ctrl] +[Shift]+[I] Property Note Sequence Messages Find in Project Browser [Shift]+[Alt]+[G] Make User Default
Use to
Save the current diagram as a UML pattern Add, modify and delete swimlanes current diagram. Hide or show individual connectors
311
484 . 308
for the
444
302
in the current
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of Enterprise Architect, if security is enabled you make the current diagram the default diagram opened when the current user reopens 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 reestablish the Model Default diagram, set it as the User Default.
Make the current diagram the default diagram model is re-opened. To cancel a Model Default diagram, either:
326
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 Repeat Last Element [Shift]+[F3] Repeat Last Connector [F3] Zoom Change the type
298
331
426
88
Menu Option & Function Keys Attributes [F9] Operations [F10] Inline Features Feature Visibility [Ctrl]+[Shift] +[Y] Advanced
397
Select which features and characteristics of the selected element are visible 300 on a diagram. See the element Advanced Submenu
89
Rich Text Format (RTF) Report Generate a report for the currently selected package in rich text format 1155 . Source Code Engineering Open Source in External Editor [F12] Find in Project Browser [Alt] +[G] Find in Diagrams [Ctrl]+[U] Custom References [Ctrl]+[J] Appearance Alignment Make Same See the element Position Submenus Z Order Size Move Space Evenly
90
89
Open the source code of the selected Class in the default external editor for that language. (Source code must have been generated 892 , and the selected element must be a Class.) Find the currently selected element in the Project Browser window. (If no element is selected, finds the current diagram in the Project Browser window.) Display all occurrences of the currently selected element. Show model element cross references
351 . 90
Attach a note or attach a constraint to the element. Open the dialog containing details of the selected element feature, or the element if no feature is selected. Insert a new item in the element. Add a Note element linked to the selected item, reflecting the content of that item. Add an attribute
369
to the element.
89
Menu Option & Function Keys +[F9] Add Operation [Ctrl]+[Shift] +[F10] Add Other [Ctrl]+[F11] Delete Selected from Model [Ctrl]+[Shift]+[Delete]
Use to
Add an operation
396
to the element.
Insert a feature on the specific element item, such as Maintenance features and Testing features. Delete the selected item from the model.
Other options that are available while in editing elements mode in a diagram (when an attribute or operation is highlighted) include: Key [Enter] [Ctrl]+[Enter] [Esc] [Shift]+[F10] [Ctrl]+[L] Use to Accept current changes. Accept current changes and open a new slot to add a new item. Abort edit, without save. Display the context menu for in-place editing. Invoke the Set Element Classifier dialog.
Set Parents and Interfaces [Ctrl] Manually set the element's parents or an interface +[I] Embedded Elements [Ctrl] +[Shift]+[B] Change Type Attach elements
341
349
that it realizes.
355
90
Menu Option & Function Keys [F7] Batch Generate Selected Element(s) [Shift]+[F11] Batch Synchronize Selected Element(s) [Ctrl]+[R] Open Source Directory [Ctrl]+[Alt]+[Y]
Use to
Auto-size a group of elements in a diagram to a best fit. Set border, font and background color and border thickness for the selected element, as its default appearance 360 . Select an alternative image for the selected element.
344
91
Spell check
251
Spell check
251
Specify the language to use for spell checking. Manage your project's data Repair, compact or replicate Execute an SQL patch Export reference data Import reference data Import
489 654 . 92
92
819
to XML files for convenient model updating. from XML files for convenient model updating.
820
Display the MDG Technology Wizard. See SDK for Enterprise Architect Open Wordpad. Open Windows Explorer. Customize
92
dialog
219 .
92
of a project.
675
Remove
677
Resolve any conflicts 678 caused when multiple users have changed the same element between synchronization points.
80
93
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.
94
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 topic.
95
95
4. In the Toolbar Name field, type a name for your new toolbar and click on the OK button. Your new toolbar is created.
96
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.
97
3. Click on the New icon (left of the red X ). A blank field displays in the Menu contents list.
4. Type in the name of the tool as it should appear in the menu. 5. In the Command field, type the name of the tool .exe file to use; the tool must be a valid filename. 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 (see Using Parameters 98 ). 6. Add any arguments required by the tool (see Opening External Tools External Applications 100 ), and specify an initial directory if required.
98
98
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.
99
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.
100
The available parameters for passing information to external applications are: Parameter $f $F $p $P $d $D $e $E Tip: For more information on using the Automation Interface, visit www.sparxsystems.com/AutIntVB.htm. Description Project Name Calling Application (Enterprise Architect) Current Package ID Package GUID Diagram ID Diagram GUID Comma separated list of element IDs Comma separated list of element GUIDs Notes For example, C:\projects\EAexample.eap. Enterprise Architect. For example, 144. GUID for accessing this package. ID for accessing associated diagram. GUID for accessing associated diagram. All elements selected in the current diagram. All elements selected in the current diagram.
101
102
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.
103
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. Warning: About Custom Layouts and Keyboard Shortcuts: If you have set keyboard shortcuts, these are not overridden if you switch to the Default Layout or the Iconix Layout option. However, if you have set keyboard shortcuts and you switch to a User Layout, your keyboard shortcuts are overridden, unless you have saved them as part of the user layout you have switched to. For more information about custom layouts, see the Custom Layouts 236 topic.
Context Menus
Currently this feature is disabled.
Menu Animations
The following menu animations can be selected from the Menu animations drop-down list:
104
Menu Shadows
Menu shadows can be toggled on or off by selecting or clearing the Menu shadows checkbox.
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.
105
Use to Access the Add-In submenu Display the Manage Add-Ins use.
105
for the selected Add-In. dialog, which you use to enable or disable Add-Ins for
1588
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 <Add-In specific options> Help About Use to List options to perform various functions specific to the Add-In. For example, the MDG Technology For Zachman Framework, as an Add-In, has the options Open Example Model and Insert New Framework Model. Display the Help subsystem for the Add-In. Display information on the Add-In installation, such as version, registration details and copyright statement.
Display the People 796 dialog, which enables you to configure the authors, clients, resources and roles for your project. Display the General Types 804 dialog, which enables you to configure requirements, status types, constraints and scenarios for your project. Display the Maintenance and test types.
811
efforts
838
and metrics
839 )
used in
Display the Estimation factors dialog, which enables you to configure estimation 825 factor types (Technical Complexity Factors 825 , Environmental Complexity Factors 827 , and Default Hour Rate 829 ) for your project. Configure stereotypes your project.
814 ,
UML MDG Technologies Namespaces Template Package Local Paths Auto Name Counters Code Datatypes
815
816
for
Configure or change the default element template directory. Configure local directories and paths Configure automatic naming
348 917 .
for elements.
817 .
106
Menu Option & Function Keys Database Datatypes Preprocessor Macros Code Generation Templates [Ctrl]+[Shift]+[P] Transformation Templates [Ctrl]+[Alt]+[H] Images Colors
Use to
Add, modify and delete database datatypes Add and delete preprocessor macros
918 .
1109
937 .
1123
312 .
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
360
dialog
360 .
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 [Ctrl]+[F4] Autohide Active Window [Ctrl]+[Shift]+[F4] Autohide All Docked Windows Close Current View Close All Except Current Reload Current View Save All Modified Close All Always on Top Set Focus to Current View [Ctrl]+[Shift]+[0]
Autohide
175
Autohide
175
Close the current view. Close all except the currently selected view. Refresh the current view Save all modified data. Close all opened windows in the main tab view. Force the main Enterprise Architect window to be on top of all other windows. Make the current view the active one, so that key strokes immediately act on that view.
741 .
107
Display the introductory page of the Enterprise Architect Help. View the keyboard accelerator map. You can customize your keyboard shortcuts 101 , if required. See below. Visit the Sparx Systems website.
Pricing and Purchase Options Purchase or upgrade Enterprise Architect over the internet.
108
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.
109
or connector properties
451 ,
as
110
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 - is available at the end of the context menu. This enables you to synchronize 470 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.
111
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, rightclicking on it and selecting the Unpin from Toolbox context menu option.
112
Note: MDG Technologies can impose their own Toolbox page visibility. For example, if ICONIX is the active technology, all seven 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.
113
The advantage of using the UML 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 UML Toolbox shortcut menu, follow the steps below: 1. Open a diagram. 2. Either:
114
Click on the diagram background and press [Insert] or [Spacebar] Press and hold [Ctrl] and right-click on the diagram background. The shortcut menu displays, listing the current diagram-type elements and connectors. 3. If necessary, select the Other option or a pinned Toolbox page option to list elements and connectors for a different diagram type. 4. Select the element or connector to include in the diagram. The object is added to the diagram. If you select the Other context menu option, the final menu in the sequence offers the Activate <Type> Toolbox option. This opens and activates the corresponding page in the UML Toolbox, if the Toolbox is visible. Note: As for the UML 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 UML Toolbox shortcut menu.
115
Common Elements
Common Connectors
116
117
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 Model 50 for an example of this. Use the Table element to insert a stereotyped Class for use in database modeling. See the Data Modeling 1100 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.
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.
118
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.
119
The Interaction group is used to model dynamic interactions between elements at run-time. The Actor element models a user of the system, while the other elements model things within the system, including standard elements (rectangular element), user interface component (circle with left positioned vertical bar), controller (circle with arrow head in top-most position) and entity (circle with bar at bottom). The meaning of these symbols is discussed further in the Sequence diagrams 1280 topic. The Message relationship is used to model the flow of information and processing between elements. The following model objects are supported: Actor, Lifeline, Boundary, Control and Entity (all sequence elements) and Message (sequence relationship). Note: Messages can be simple or recursive calls. 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.
120
121
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. 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.
122
The Component group contains elements related to the actual building of the system: the components that make up the system (such as ActiveX DLL's or Java beans), the Interfaces they expose and the dependencies between those elements. 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.
123
The Deployment group contains elements related to the actual building of the system; the components that make up the system (such as ActiveX DLLs or Java beans) and the nodes those components run on, including the physical connections between nodes. 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.
124
diagrams.
A Package 1392 is a namespace as well as an element that can be contained in other package's namespaces. A Class 1378 is a representation of objects, that reflects their structure and behavior within the system. An Enumeration A Primitive
1395 1386
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.
125
126
A Test Case 1410 element defines what must be set up in order to test a particular feature (see the Test Cases Window 843 topic). It enables you to define a set of tests once for a number of elements, and provides greater visibility for tests. An Entity is a stereotyped element that represents any general thing not captured by the element or Class type elements (for example a trading partner). Use of this element is deprecated: it was originally intended to take the role now occupied by a Table 1411 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.
127
A Feature 1403 is a small client-valued function expressed as a requirement. Features are the primary requirements-gathering artifact of the Feature-Driven Design (FDD) methodology. An Object
1389
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.
elements are defects, changes, issues and tasks. A Package 1392 is a namespace as well as an element that can be contained in other package's namespaces. An Issue element is a structured comment that contains information about defects and issues 862 relating to the system/model. Affected elements are connected by Trace 1452 connectors. A Change 862 element is a structured comment that contains information about changes requested to the system/model. Affected elements are connected by Trace 1452 connectors. A Test Case 843 describes what must be set up in order to test a particular feature. An Entity is a stereotyped element that represents any general thing not captured by the element or Class type elements (for example a trading partner). Use of this element is deprecated: it was originally intended to take the role now occupied by a Table 1411 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.
128
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.
The following diagram illustrates the GUI elements from the Toolbox, within a Screen element.
129
1067
A Namespace 1060 represents the top-level container for the WSDL model. Drag this element onto an open diagram to create the necessary model structure for WSDL documents. A physical WSDL document 1061 is represented as a UML component. Its interfaces represent the WSDL services 1062 . A WSDL Port Type 1063 is modeled as a UML interface. Its Port Type Operations 1066 are realized by Binding 1064 elements. Each of the operation parameters is derived from the Message elements defined in the Messages 1064 package. 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.
130
The Table
1411
in the data
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.
131
Enterprise Architect provides you with a selection of toolbars that you can drag and dock within the application frame. These toolbars provide convenient shortcuts to common tasks. You can also float toolbars over the application by tearing them off 176 the application toolbar section; this is useful when you are using a certain set of functions a lot in a particular area. You can customize toolbars by deleting and reordering the default button set. See Customize Commands 93 for more information. You can customize which toolbars are active by right-clicking on the toolbar background and selecting the required items at the end of the context menu. 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:
The toolbars available include: Default Tools Toolbar 132 Project Toolbar 132 Code Generation Toolbar 133 UML Elements Toolbar 134 Diagram Toolbar 135
132
Current Element Toolbar 135 Current Connector Toolbar 136 Format Toolbar 136 Workspace Views 137 Other Views Toolbar 138 Status Bar 138 Rich Text Notes Toolbar 139
Each toolbar has a drop-down arrow at the right-hand end, , which can be enabled or hidden 80 . 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 92 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): New project [Ctrl]+[N] Open a project [Ctrl]+[O] Save current diagram [Ctrl]+[S] Copy to Enterprise Architect clipboard [Ctrl]+[Space] Paste from Enterprise Architect clipboard as instance [Shift]+[Insert] Undo last action [Ctrl]+[Z] Redo last undone action [Ctrl]+[Y] Print Preview (for generated documents and diagrams) Page setup Print [Ctrl]+[O] Show Element List for currently-selected package or diagram [Ctrl]+[Alt]+[R] Open Model Search [Ctrl]+[Alt]+[A] Select the layout of docked windows, toolbars and the Enterprise Architect UML Toolbox (<default> is Enterprise Architect, other options display for any MDG Technologies 491 you have enabled) Help [F1]. You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar from the View | Toolbars menu option.
The Project toolbar provides quick access to the following functions (in order): Reload current project 741 [Ctrl]+[Shift]+[F11] New diagram New package [Ctrl]+[W] New element [Ctrl]+[M] Search Project Browser window [Ctrl]+[Shift]+[F] Search entire project [Ctrl]+[F]
1998-2009 Sparx Systems Pty Ltd
133
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 from the View | Toolbars 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] Batch generate code for one or more selected Classes [Shift]+[F11] Synchronize selected Classes with source code [F7] View code 183 in default editor [F12].
134
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 from the View | Toolbars menu option.
The UML Elements toolbar provides quick access to the following functions (in order): Insert new element - displays a list of elements an Other option to list other elements Insert new System Boundary 1370 element Insert new Note 359 Insert new Text element 359 Insert new diagram note 302 Insert diagram Legend 326 Insert new hyperlink 1403 Insert new note link 1446 .
346
135
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar from the View | Toolbars menu option. The specific elements and the Notelink connector are also available in the Common Architect UML Toolbox.
114
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]+[#] Align selected elements to the bottom [Ctrl]+[Alt]+[$] Bring selected element to top of Z order Move selected element to bottom of Z order Go to previous diagram [Alt]+[!] Go to next diagram [Alt]+["] Go to default diagram Zoom In Zoom Out Zoom to fit diagram Zoom to fit page Zoom to 100% Auto-layout diagram (not for Behavioral diagrams) in the Digraph 287 layout Show diagram properties [F5] Paste appearance as copied into the Painter from an element's Appearance Delete selected element(s) [Ctrl]+[D].
343
context menu
Any actions that result in a change in diagram content and appearance (including Zoom) can be saved as changes to the diagram. You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show this toolbar from the View | Toolbars menu option.
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
136
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 761 . Add a Tagged Value to the current element [Ctrl]+[Shift]+[T] You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar using the View | Toolbars menu option.
The Current Connector toolbar provides quick access to the following functions (in order): View and modify properties for the current connector Set the connector line style
Attach a note to the currently selected connector Set the visibility for labels of the connector Set the visible or hidden relations in the current diagram [Ctrl]+[Shift]+[I] Reverse the direction of the currently selected connector Pin the start and/or connector ends to a position on the target element (drop menu).
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar from the View | Toolbars 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.
137
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 221 and Diagram | Appearance 224 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 360 dialog displays. The Format toolbar provides quick access to the following functions (in order): Text font, style, size and effects, through the Font 344 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).
Note: If the Format toolbar is not displayed, select the View | Toolbars | Format Tool menu option. 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 362 topic. You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show this toolbar using the View | Toolbars menu.
The Workspace Views toolbar provides a convenient means of turning on or off any of the following docked workspace windows: Project Browser window [Alt]+[0] Properties window [Alt]+[1] Enterprise Architect UML Toolbox [Alt]+[5] Glossary and System window [Alt]+[2] Maintenance window [Alt]+[4] Testing window [Alt]+[3]
138
Debug Workbench [Alt]+[8] Source Code window [Alt]+[7] Element Hierarchy window [Ctrl]+[Shift]+[4] Project Management window [Ctrl]+[Shift]+[7] Output window [Ctrl]+[Shift]+[8] Element Relationships window [Ctrl]+[Shift]+[2] Requirements and Constraints (Rules and Scenarios) window [Ctrl]+[Shift]+[3] Pan and Zoom window [Ctrl]+[Shift]+[N]
Click on any of these buttons to toggle the associated window on or off. You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar from the View | Toolbars menu option.
The Other Windows toolbar provides access to the following project information windows in Enterprise Architect, in order: Element List 143 - Displays the current diagram or package in a context-sensitive, editable table [Ctrl] +[Alt]+[R] Model Search 156 - Opens the Enterprise Architect Model Search and its facilities [Ctrl]+[Alt]+[A] Relationship Matrix 457 - Opens the relationship matrix to cross reference elements to each other by connector type Discussion Forum 243 - Opens the Project Forum [Ctrl]+[Alt]+[U] Audit View 770 - Displays the Audit View, which shows the information that has been recorded by auditing Web Browser - Opens the web browser page at the site you have specified on the Options 219 dialog, in the Web Home field. Click on any of these buttons to toggle the associated window on or off. Note: The buttons on this toolbar - and the facilities they access - are not all available in all editions of Enterprise Architect. For example, the Discussion Forum is not available in the Desktop edition, and the Audit View is not available in the Desktop and Professional editions. You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You can hide or show the toolbar from the View | Toolbars menu option.
In particular the Status bar: Identifies the type and name of the currently selected element in a diagram (or the status of a Model Search) Provides the current coordinates of the top left corner of the selected element, and its width and height Provides a zoom slider that enables you to enlarge the scale of the current diagram by up to 50%
139
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 224 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 menu option, but you cannot dock it in any other position.
Although it is not an independent toolbar that you can pin to the screen top or sides, or float in your work area, the Rich Text 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 Rich Text 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 300 dialog 300 in order to reproduce the formatting. 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
140
Make text subscript Additional keyboard shortcuts: Undo changes [Ctrl]+[Z] Redo changes [Ctrl]+[Y] or [Ctrl]+[Shift]+[Z] Copy [Ctrl]+[C] Paste [Ctrl]+[V] Cut [Ctrl]+[X]
Any Note text appearing in the element Note compartments in diagrams is not formatted.
141
Notice that the AICollections tab is bold; this means that the current diagram is the AICollections diagram. Also notice that the Class Model tab has an asterisk. This means that there are unsaved changes in the Class Model diagram. To save the changes see below.
The table below explains each menu option. Menu Option Save Changes to '<tab name>' Save All Reload '<tab name>' Use to Save the unsaved changes made to the diagram.
Save the model. 1. Reopen the diagram without the unsaved changes; that is, revert to the state before any changes were made. 2. Refresh the diagram 741 from the repository, to show any changes made by other users in a shared model.
Close '<tab name>' Close All Close All Except '<tab name>'
Close the diagram; Enterprise Architect prompts you to save changes to the diagram. Close all open diagrams; Enterprise Architect prompts you to save any diagrams with unsaved changes. Close all diagrams except for '<tab name>'; Enterprise Architect prompts you to save any diagrams with unsaved changes.
142
Models in Enterprise Architect are viewed in different ways in the application workspace, either in the Diagram View 142 or the Element List 143 . You can also develop tailored views of your model or project in the Model Views 148 window. See Also Relationship Matrix Model Search 156
457
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
1998-2009 Sparx Systems Pty Ltd
143
behavior of the Diagram View. Tip: You can also use the Element List Typical diagram activities include: Add new elements 108 to the diagram using the Enterprise Architect UML Toolbox Add existing elements to the diagram by dragging them 303 from the Project Browser Add connectors 108 between elements using connectors from the Enterprise Architect UML Toolbox Copy elements 297 in a diagram to link or copy elsewhere Zoom a diagram 331 to different magnifications Use the Diagram toolbar forward and back 135 arrows to display the previous or next diagram Align 355 and resize 356 multiple elements Delete 357 elements from the diagram (but not the project) Double-click on the diagram background to open the diagram Properties dialog and set diagram properties
318 143
to manipulate elements.
Print and print preview 71 diagrams Save the diagram image to file 297 Save the diagram image to the clipboard
298 .
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 146 band below the Toolbar
144
Model Hierarchy format - as shown below, where the package and element hierarchies are represented in the display.
In the Element List you can: Sort the items by any column value in ascending or descending order, by clicking on the column header; initially the elements are listed in numerical order (if level numbering is turned on in the Project Browser) or alphabetical order within type
1998-2009 Sparx Systems Pty Ltd
145
In User Defined format, change the filtered structure of the information in the list; see Value Grouping below Change the sequence of columns, by dragging column headers left or right Note:
146 ,
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 147 (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
146 .
146
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.
348
- display the Notes window, to add or edit notes for the selected element ([Ctrl]+[Space]) - delete the selected element ([Ctrl]+[D]) - print the current contents of the Element List - display the Generate RTF Documentation dialog, to create an RTF report
1159
147
- toggle between including child packages and their contents in the list, and showing only the firstlevel contents of the selected diagram or package - toggle the display between model hierarchy format and user-defined value-grouping
145
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. - display Help on the Element List.
Audit History
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of Enterprise Architect, if Auditing 766 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 774 tab of the Output 202 window. (If security is enabled, you must have at least Audit View 755 permissions to display the audit history).
Find In Project Browser Bookmark Item Create Linked Document [Ctrl] +[Alt]+[D] (Edit Linked Document) Delete linked document Documentation
topic.
Delete an existing linked document. (Only displays if the element has a linked document.) Generate an RTF report. You have two options: Generate a separate report on each selected object in the report Generate one report on all selected objects. In either case, the Generate RTF Documentation 1159 dialog 1159 displays. You also have the option to print out the Element List itself. Alternatively, select the Rich Text Report icon in the Element List toolbar. This generates one report for all selected items.
Show as Diagram
If you have opened the list for a diagram in the Project Browser, show the elements as the diagram instead of as the Element List.
148
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 the element list to refresh the order and content with any recent changes. Print the Element List. Delete the selected element from the Element List. Alternatively, select the Delete Selected icon in the Element List toolbar.
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 152 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 154 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 153 all of the View folders containing Views from any root section as an XML file, and import 153 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.
1998-2009 Sparx Systems Pty Ltd
149
- A Model View root node - A View Folder - A Favorites Folder - A View (search-based) - A Slideshow Folder - The My Views root node - The DoDAF-MODAF View (a Technology-defined View) - The Recent Discussions folder - A repository of postings from a selected forum, concerning elements in the Model Views - The recent posts folder for the selected forum Each level of the Model Views hierarchy has a slightly different context menu. 150
The availability of the Model Views Toolbar options depends on the type of object selected. The options are, from left to right:
150
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 Favorites folder in the currently-selected Views folder. Creates a new Slideshow
154
Creates a new View in the currently-selected Views folder, and displays the Create New View dialog to define the search 152 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. 152 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. Displays Help on Model Views.
Display a prompt for the Views folder name and create the folder in the selected root node. (Root node only.) Prompt for the XML file location and create a new Model Views node to hold the imported Views. (Root node only.) Prompt for a file path and name, and copy all Views under the selected root node to an XML file at that location. (Root node only.)
151
Option Remove Model View New Search Folder New Favorites Folder
Use to Display a prompt to delete the selected user-defined Model View and, if confirmed, delete the root node and all contents. (Not for the My Views, initial Model Views or Technologydefined root nodes.) Display the Create New View dialog (similar to the View Properties dialog) for you to define the search that populates the View 152 . (View folder only.) Display the Create a new favorites based folder dialog, which prompts for the folder name. (View folder only.)
New Slideshow Display the Create a new slideshow 154 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 160 (View only). Alternatively, press [Shift]+[Space]. Refresh Refresh the search and opens the View or Postings Repository to show the elements or Posts retrieved by the search. Alternatively, press [Space]. Double Click Opens Search Enable you to perform the Open Search function by double-clicking on the View. If you deselect this option, double-click refreshes the search and opens the View to show the elements retrieved by the search. Open the Project Discussion Forum and highlights the selected post. Open the Project Discussion Forum at the top level (Category). Display the Forum Connections
249
Find Post Open Forum Edit Connections Remove Folder Remove View Remove Favorites Remove Slideshow Run Slideshow Run Slideshow Full Screen
Display a prompt to delete the selected Views folder and, if confirmed, delete the folder and all contents. (View folder only.) Display a prompt to delete the selected View and, if confirmed, delete the View and all contents. Display a prompt to delete the selected Favorites folder and, if confirmed, delete the folder and all contents. Display a prompt to confirm deletion of the selected slide show and, if confirmed, delete the slide show and all its diagrams. Run the slide show Run the slide show
154 154
in the Diagram View. in full screen mode, so that the slide show fills the whole screen.
Stop Slideshow Cancel execution of the slide show [Esc]. In Project Browser In Diagrams
154
Highlight the selected item in the Project Browser. (Element / Diagram / Package object only.) 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 the folder. This has no effect on the object in the Project Browser or any diagrams. Item (Element / Diagram / Package object only.)
152
Option
Use to Note: You would not delete an object in a View, as it is replaced the next time the View is refreshed.
Help
In the Name field, type a name for the View. In the Search field, either: Type the name of an existing search Click on the drop-down arrow and select an existing search from the lists, or Click on the [ ... ] (Browse) button to display the Manage Searches 161 dialog, edit an existing search or define a new one, then Close the dialog and type or select that search name in the Search field.
153
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.
154
Thereafter, any model for which the MDG Technology is active automatically displays those Views in a Technology-defined View.
You create each slide show as a folder 149 within a Views folder under a Model View node. When you run a slide show, it displays the diagrams in the folder in the sequence in which they are listed in the folder. After each diagram has been displayed, it is closed.
3. In the Name field, type the name of the slide show. 4. Click on the OK button. The new slide show folder is added to the selected View folder. 5. Dock
173
the Project Browser window separately from the Model Views window.
6. Drag the diagrams to be displayed as part of the slide show from the Project Browser into the new slide show folder. Organize the diagrams in the order in which they are to be displayed. 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. 7. Close the folder. You can reorganize the diagrams in the slide show using the up/down green arrows toolbar.
149
To remove a diagram that is not required, right-click on it in the slide show folder and select the Remove Linked Item context menu option.
155
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: To: Display the next slide [Spacebar] or [#] Display the previous slide [!] Display the first slide [#] Display the final slide [$] Pause the slide show Resume the slide show Click On, or Press
156
(In Diagram View) right-click on the slide show folder and select the Stop Slideshow context menu option.
topic.
158
When you have generated your search results, you can print them or generate an RTF report To access the Model Search: Select the View | Model Search menu option Click on a package in the Project Browser and press [Ctrl]+[Alt]+[A], or Click on the Model Search icon in the Other Views 138 toolbar
on them.
The Model Search is also displayed when you search the whole project using the Edit | Find in Model menu option. In the Model Search you can:
161
Sort the items by any column value in ascending or descending order, by clicking on the column header Display element or diagram properties, by double-clicking on the item Select:
1998-2009 Sparx Systems Pty Ltd
157
An element or diagram by clicking on it Several individual elements or diagrams by holding [Ctrl] as you click on them A range of elements or diagrams by holding [Shift] as you click on the first and last in the range All elements or diagrams in the list by pressing [Ctrl]+[A].
on your project,
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 options are, from left to right: Edit Notes ([Ctrl]+[Spacebar]) - For the selected item, opens the Notes window (if it is not already open) so that you can edit the text of the notes. Delete ([Ctrl]+[D]) - For a selected item or group of items, deletes them from the model; refresh the project to check that the items have been deleted. Print - Prints the complete set of search results. Rich Text Report - For a selected item or group of items, generates and prints an RTF report. View Notes - Displays a short menu that enables you to select whether, for all items, to: Hide any Notes text from display in the search results Display the first few words of the Notes text in the search results Display the full Notes text in the search results. Help - Displays the Enterprise Architect Help, starting with the Model Search Help topic.
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.
158
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.
159
Note: Not all options are available for a diagram. Menu Option Properties Copy Selected to Clipboard Documentation Use to Display the Properties dialog for the element. Copy the selected item to the MS Windows clipboard so that it can be pasted to a document, spreadsheet or email. Generate an RTF report. You have two options: Generate a separate report on each selected object in the Model Search. Generate one report on all selected objects. In either case, the Generate RTF Documentation 1159 dialog displays. Note: If you generate the report using a custom SQL search, the SQL must include ea_guid AS CLASSGUID and the object type. Create Linked Document [Ctrl] +[Alt]+[D] (Edit Linked Document) Delete Linked Document Print Clear Results Find in Diagrams Find in Project Delete an existing linked document. (Only displays if the element has a linked document.) Print out the filtered results. Clear the search results from the Model Search. Display the diagram that uses the element or, if the element is used in multiple diagrams, display a list of diagrams to choose from. Highlight the element in the Project Browser.
165
Create 426 (or edit 427 ) a linked document (Professional, Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions). See the Linked Documents
424
topic.
160
Use to
Bookmark the element. Delete the selected element from the Model Search. Close the Model Search. Display this Help topic on the Model Search.
In the Search Term field type the text to search for, and in the Search field select the type of search to perform 168 (the default being Simple). Click on the Run button to display your results. You can perform more complex searches tasks:
161
165 .
To begin these
1. Click on the Options button. The Search Options submenu displays. 2. Click on the Manage Searches option. The Manage Searches dialog displays.
1508
73
161
For information on performing a search from: An Add-In A Hyperlink See Also Search a Model
See
1588
161
Use To Specify the search term. Select a filter. If required, define your own custom search filters in Enterprise Architect. Run the search. Perform complex searches
161 .
See Also Use the Model Search 160 Create Search Definitions
165
162
Search filters enable you to perform customized searches on a Search Term in order to locate model elements having specific characteristics. The Search List drop-down list provides several pre-defined search definitions 168 .
For ease of use, the list of available searches is separated into built-in searches, user-defined searches and Add-In searches.
165
The default is a Simple search, which searches all elements, looking at the Name and Notes fields only. If the search term is found in the Name field or the Notes field, those elements are displayed. Important: The fields listed in a search have an OR relationship when no Required checkboxes are ticked; that is, if the search term is found in any one of those fields, then the element is displayed. 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.
1998-2009 Sparx Systems Pty Ltd
163
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.
164
Option Search List Run Search New Search Save Search Copy Search Delete Search Get Default Export Import Search On panel
Use to Select a previously-defined search definition. Run the selected search. The results are displayed in the Model Search
156 . 165
Create a new search definition, with new search criteria. See Create Search Definitions . Save a modified or new search. Copy an existing search, to modify. Delete the search definition from the Search List.
Restore the default Search definition of the current type, after you have edited the search parameters. Display a selection box that enables you to select searches to export to an external directory as an XML Search file. Display the Windows Directory Explorer Open dialog to enable you to import searches as XML Search files from an external directory. Display the element search filters that are contained in the defined search. The format is the element 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). You edit the filters by double-clicking on the panel contents, or by clicking on the Edit Filter button, to display the Edit Filters dialog.
Search In Condition
170
Select the type and name of each element field to search on. Select the condition of the search parameter. The available options are Contains, Equal To, Not Equals and One Of. 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. Indicate that the search results must include elements with your search term in that field. (You select these checkboxes on the Add Filters 169 dialog.) Specify whether element features are optional or required. These appear as a new branch underneath the root element term in the Search On panel. The Extended search is a good example; select this definition in the Search List field. If you scroll down the Search In column, you see sub branches such as 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 169 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 filters (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 and you selected Optional, 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
Look for
170
165
Option
Use to 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.
169
Open the Edit Filters dialog, which enables you to change the search parameters. Remove the selected filter from the search. Select either: Entire Model - the default, which searches the entire model, or Current Tree Selection - which runs a search in a specific package, which you select from the Project Browser. Note: If you select the Current Tree Selection option, navigating the Project Browser does not change your search results until you click on the Run button. That is, to search different areas of the project, click on the first required package in the Project Browser and click on the Run button, check the results, and then click on another package in the Project Browser and click on the Run button again.
are created using the Manage Searches dialog. To access this dialog:
Click on the Options button in the Model Search 160 and then on the Manage Searches menu option, or Select the Edit | Find in Model 161 menu option, then click on the Manage Searches button. To create a new search definition, follow the steps below: 1. Click on the New Search button. The Create New Search Query dialog displays.
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 165 option provides an interface that enables you to design your own search. The SQL Editor 166 option enables advanced users to directly write SQL Select statements. The Add-In Search 168 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 Add-Ins 1583 . 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 List drop-down. The main window
166
displays the message 'There are no items to show in this view'. You can now click on the Add Filter button to Add Filters 169 .
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
205
topic.
167
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 display an item's properties by simply double-clicking on a table name in the Table Name list, and executing the SELECT statement that displays for that table in the Query panel. For example:
168
SELECT * FROM t_object WHERE NAME=<Search Term>' 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 then available from the Search List.
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 List.
169
1159
dialog.
Option Search On
Use to 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 Field Select each field item to include in your search. (Select the checkbox.) Identify the name of the field to search. See Fields and Conditions presents items specific to the filter Search On item.
170 .
The list
170
Use to Specify the condition of the search parameter. See Fields and Conditions
170 .
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 170 . Select a particular field to generate a result set that must contain your search term in that field. Select all the items to include them in the search definition. Deselect all the items to omit them from the search definition. 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
165
For some conditions, the value field contains an ellipsis ( Examples of selection dialogs are shown below. Example Selection dialog for One Of section
171
165
172
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.
173
Enterprise Architect enables you to rearrange the windows and some menus to suit your work habits. For example, you can: Dock Windows 173 Autohide Windows Tear Off Menus 176
175
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.
174
175
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.
176
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.
A tear off menu can be dragged out of the menu structure into its own window. Simply click on the bar at the top and drag it away. The menu detaches itself as shown here:
Once detached, the menu can also be docked in the toolbar section at the top of the screen, or on the edges of the workspace.
177
173
Through the View menu or the View | More Windows sub menu, or Through the context menu accessed by right-clicking on the main menu. The dockable windows available include: Project Browser 57 Properties 178 System 179 Testing 843 Maintenance 857 Enterprise Architect UML Toolbox Resources 180 Source Code Viewer 183 Scripter window 185 Debug 991 Tasks Pane 202 Notes 195 Hierarchy 194 Tagged Values 196 Project Management 201 Output 202 Model Views 148 Element Browser 191 Relationships 193 Rules and Scenarios 194 Pan & Zoom 204 Layout Palette 280 .
108
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.
178
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.
179
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 219 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.
180
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. For more information concerning project tasks, issues and Glossary, see Project Management with Enterprise Architect.
181
MDG Technologies 489 , UML Profiles 466 and UML Patterns 483 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 470 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) 1235 reports, RTF 1208 reports in either the legacy report generator 1201 or the extended RTF report generator 1159 , linked documents 424 and MDG Technology reports; you can create, edit 1163 , copy and delete your own (model) templates, and view and copy system-supplied or technology-supplied templates using context menu options Documents 1154 provides a shortcut to saved RTF documents
182
Tip: To add a document to the shortcut list, select the Project | Documentation | Rich Text Format (RTF) Report menu option. Once you have defined your document click on the Resource Document button and type in a name. The document name then displays in the Resources window. By right-clicking on the document name 1191 you can regenerate documents individually or as a batch, or open them directly from Enterprise Architect. Matrix Profiles 457 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 182 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.
3.13.3.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.
183
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. 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.
184
Open button - opens the source code from an existing file, this option is also active in the 'Lite 11 ', readonly version of Enterprise Architect Save button - saves the changes to the currently loaded source code; this option is also active in the 'Lite', read-only version of Enterprise Architect Copy button - copies the highlighted text to the clipboard Paste button - pastes the text that is currently contained in the clipboard to the Source Code viewer Undo button - cancels the previous action Generate and Synch button - generates and synchronizes with the current object source Save and Resynch button - saves the source code and resynchronizes the Class Code Templates button - accesses the Code Templates Editor 937 Build and Run button - provides quick access to the following commands: Build - run package build scripts Test - run package test scripts Run - run debug Package Build Scripts - configure package build scripts (these options are also active in the 'Lite', read-only version of Enterprise Architect) Set Font button - sets the font for the text contained in the Source Code viewer.
185
186
The Scripts tab toolbar provides the following buttons: Icon Use to Create a new user 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 in the selected user group; displays a short menu of the types of script you can create, namely:
187
Icon
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. 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 187 . Stop an executing script. The icon is disabled if no script is executing. Display the Output window with the results of the most recently executed script displayed in the Script tab. Delete a user group script from the model. You cannot use this icon to delete a user group (see the Context Menu 187 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 219 of the Options dialog. If this option is not selected, no prompt is displayed. Script deletion is permanent - scripts cannot be recovered.
Context Menus
The user groups and their scripts also have context menus that provide some or all of the following options: Rename group/script - to change the name of the selected group or script Delete group/script - to delete the selected group or script New VBScript/JScript/JavaScript - add a new script to the selected user group. Note: If you select to delete a user 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 user groups and scripts is permanent.
188
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 commands: 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
1998-2009 Sparx Systems Pty Ltd
189
?<variable name> to get the current value of any item you have created during the console session.
190
The toolbar options enable you to: Save changes to the current script Save the current script under a different name Run the script Stop the executing script View the script output in the Scripts tab of the Output window.
The available runtime scripting objects are: Repository [Type: IDualRepository] - this is the Enterprise Architect automation interface Maths [Type: IMath ] Session [Type: ISession ].
1635
191
is not necessary to use this syntax to execute a script properly. It is only present so that the correct Intellisense can be displayed for an item. The syntax can be seen in the above diagram in, for example:
Dim e as EA.Element
Then, when you type, in this case, e. the editor displays a list of member functions and properties of e's type.
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.
192
The following are displayed, where available: Operations Attributes Tags Constraints Requirements Files Connectors (Links) Scenarios Documents.
193
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 745 on, the diagram and the source and target elements must be free for editing before some of these options are available for use.
194
Note: You can only list external Requirements in this window. You cannot add external Requirement elements, nor can you display and edit details of an external Requirement element. You can add and delete internal requirements, constraints and scenarios, and display and edit details of these entities. The Rules & Scenarios window is typically used to examine Use Case and Test Case elements, and any other elements that realize an external Requirement. To enter a new internal requirement, constraint or scenario for an element: 1. Select the element and either press [Ctrl]+[Shift]+[3] or select the View | More Windows | Rules & Scenarios menu option; the Rules & Scenarios window displays. 2. Click on the required folder. You can: Add a new rule by pressing [Ctrl]+[N] Save by pressing [Ctrl]+[S] Delete by pressing [Ctrl]+[D] Add formatted notes in the Notes field, using the Rich Text Notes
139
195
Tip: You can alter the maximum number and the initial number of levels that the hierarchy opens to by selecting the Tools | Options menu option and, on the General 219 tab, updating the Max Hierarchy View Depth and Open Hierarchy View to fields.
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.
196
197
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 198 Modify Tagged Values 198 Assign Notes to a Tagged Value 199 . A Technology Developer can also create new structured Tagged Values, reference data Tagged Values and custom Tagged Values from predefined Tagged Value Types, as described in SDK for Enterprise Architect 1542 .
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.
198
To edit Tagged Values, use the Tagged Values toolbar, as described below.
From left to right, the button functions are as follows: The Show in compartments button displays the Tagged Values in element compartments on diagrams The Sort and Show Alphabetically button sorts the current Tagged Values for the element alphabetically The New Tagged Value button adds a new tag, to which you assign a value The Edit Tagged Value Notes button enables you to create notes that explain the purpose of the Tagged Value The Delete Tagged Value button removes the currently selected Tagged Value The Default Tagged Value Types button enables quick access to tag definitions created in the Configuration menu The Tagged Value Options button enables you to show or hide the fully qualified paths for the Tagged Values in the window, and to show duplicate Tagged Values The Help button displays help relating to use of the Tagged Values window.
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.
199
1. Click on the View | Tagged Values menu option, or press [Ctrl]+[Shift]+[6]. The Tagged Values window displays. 2. Click on the model feature for which to edit the Tagged Values. The window shows all of the tags for the selected feature, each with their current value. 3. Edit the fields as appropriate. The information entered can only reflect the value types that have been defined by the tag's Tagged Value Type. There are four types of value field for a Tagged Value: 'Open' fields, in which you can type any appropriate value 'Drop-down list' fields, where you click on the drop-down arrow to select from a discrete list of possible values such as M or F, or Win, Lose or Draw 'Spin' fields, where you click on up or down arrows in the field to increase or decrease the value within certain limits 'Further detail' fields, where you click on an ellipsis ([...]) in the field to display a dialog in which you enter information (such as notes) or indicate a source of further information (such as a classifier 394 ). The example below shows a value being modified, using a drop-down list.
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.
200
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.
201
3. Select the Show Duplicate Tags checkbox. In either procedure, to hide duplicate values again deselect the option or check box.
effort
834 ,
risks
835
and metrics
836
Open the Project Management window by selecting the Element | Resourcing Metrics & Risk menu option, or the View | Project Management menu option (or press [Ctrl]+[Shift]+[7]).
Right-click on the list to view the context menu, which enables you to add and delete list items
866 .
Toolbar
These buttons have the following functions (in order as shown on the toolbar): New: Create new item Save: Save changes to an item
202
Copy: 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 Print: Print item data from the list Show/Hide Details: Swap between detailed and summary new window styles Help: Show help contents for this window.
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.
1583
The Output window can also be used by Add-Ins Interface. See SDK for Enterprise Architect 1467 .
203
The Tasks Pane has several topic areas such as: Getting Started Managing Requirements Debug and Profile Code Engineering.
489
The list of topic areas varies, and can include topics specific to any MDG Technologies 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.
204
icon to open appropriate topics from the Enterprise Architect Help file icon to open web pages or documents on the Sparx Systems web site icon to begin Enterprise Architect tasks appropriate to the Tasks Pane topic area; you must be in an appropriate functional area of Enterprise Architect in order for these tasks to function, such as in an open diagram icon to begin Add-In tasks appropriate to the Tasks Pane topic area; you must be in an appropriate functional area in order for these tasks to function icon to open report facilities to provide information or data collation tools icon to start demonstrations of Enterprise Architect functions in action.
The selected information, web page or demonstration displays on a Browser tab in the main view, or the appropriate task or report window opens. If you close the Tasks Pane window, to access it again: From any Enterprise Architect screen, press [Ctrl]+[Shift]+[9] Select the View | Tasks Pane menu option, or From the main menu/toolbar banner at the top of the Enterprise Architect screen, right-click to display the context menu and select the Tasks Pane 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.
205
Enterprise Architect provides a number of editors that you can use to maintain scripts, code and templates. Specifically, these are the: Shape Script Editor* 1526 Code Generation Template Editor* 940 Transformation Template Editor* 1123 Custom SQL Search Filter Editor* 166 Database View Editor* 1096 HTML Report Template Editor 1235 Source Code Editor* 183 Script Editor* 189
Each editor has its own features, but they are all based on a common Code Editor control. The Code Editor provides a variety of functions to assist with the code editing process, including: Bookmarks 205 Cursor history 206 Brace matching 206 Automatic indentation 206 Commenting selections 206 Scope guides 207 Zooming 208 Line selection 208 Intellisense 208 File Search 1006 .
A range of these functions is available through keyboard key combinations and/or context menu options; see the Code Editor Key Bindings 210 and Code Editor Context Menu 214 topics. You can customize several of the Code Editor features by setting properties in the Code Editor configuration files. For more information see the Code Editor Configuration Guide located as an RTF file in the Config directory under the Enterprise Architect installation directory.
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.
206
Cursor History
The Code Editor Control keeps a history of the previous 50 cursor positions. An entry in the history list is created when: The cursor is moved more than 10 lines from its previous position The cursor is moved in a find/replace operation. You can navigate to an earlier point in the cursor history by pressing [Ctrl]+[-], and a to later point by pressing [Ctrl]+[Shift]+[-].
Brace/Bracket Matching
When you place the cursor over a brace or bracket, the Code Editor highlights its corresponding partner. You can then navigate to the matching brace by pressing [Ctrl]+[E].
Automatic Indentation
For each supported language, the Code Editor adjusts the indentation of a new line according to the presence of control statements or scope block tokens in the lines leading up to the cursor position. For more information on customizing automatic indentation for a language, see the Configuration
205
section.
Commenting Selections
For languages that support comments, the Code Editor can comment entire selections of code. The Code
1998-2009 Sparx Systems Pty Ltd
207
Editor recognizes two types of commenting: Line Commenting - entire lines are commented from the start (for example, // This is a comment) Stream Commenting - sections of a line are commented from a specified start point to a specified end point (for example, /* This is a comment */). You can toggle comments on the current line or selection by pressing [Ctrl]+[Shift]+[C] for line comments, or [Ctrl]+[Shift]+[X] for stream comments.
For more information on customizing selection commenting for each language, see the Configuration section.
205
Scope Guides
If the mouse is placed over an indentation marker, the Code Editor performs a 'look back' to find the line that started the scope at that indentation level. If the line is found and is currently on screen, it is highlighted in light blue.
Alternatively if the line is off screen, a calltip is displayed advising of the line number and contents.
208
Zooming
You can zoom into and out of the contents of the Code Editor using [Ctrl]+mousewheel or [Ctrl]+keypad[+] / [Ctrl]+keypad[-]. Zoom can be restored to 100% by using [Ctrl]+keypad[/].
Line Selection
If you want to move the cursor to a specific line of code, press [Ctrl]+[G] and, in response to the prompt, type in the line number. Press the OK button. The editor displays the specified line of code with the cursor at the left.
3.14.1 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 205 of Enterprise Architect code editors. Intellisense provides you with context-based assistance through autocompletion lists, calltips and mouseover information.
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.
209
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.
210
Move cursor down one line Extend selection down one line Scroll down one line Extend rectangular selection down one line
Move cursor up one line Extend selection up one line Scroll up one line Extend rectangular selection up one line
Move cursor up one paragraph Extend selection up one paragraph Move cursor down one paragraph Extend selection down one paragraph
Move cursor left one character Extend selection left one character Move cursor left one word Extend selection left one word Extend rectangular selection left one character
211
Key
Description
Move cursor right one character Extend selection right one character Move cursor right one word Extend selection right one word Extend rectangular selection right one character
Move cursor left one word part Extend selection left one word part Move cursor right one word part Extend selection right one word part
Move cursor to the start of the current line Extend selection to the start of the current line Move cursor to the start of the document Extend selection to the start of the document Move cursor to the absolute start of the line Extend rectangular selection to the start of the line
Move cursor to the end of the current line Extend selection to the end of the current line Move cursor to the end of the document Extend selection to the end of the document Move cursor to the absolute end of the line Extend rectangular selection to the end of the line
Move cursor up a page Extend selection up a page Extend rectangular selection up a page
212
Delete character to the right of the cursor Cut selection Delete word to the right of the cursor Delete until the end of the line
Delete character to the left of the cursor Delete character to the left of the cursor Delete word to the left of the cursor Delete from the start of the line to the cursor Undo delete
Indent cursor one tab Indent cursor one tab Unindent cursor one tab
[Ctrl]+[Z] [Ctrl]+[Y]
Undo Redo
213
Select entire document Duplicate selection Convert selection to lowercase Convert selection to uppercase
[Ctrl]+[E] [Ctrl]+[Shift]+[E]
[Ctrl]+[Shift]+[C] [Ctrl]+[Shift]+[X]
[Ctrl]+[Shift]+[W] [Ctrl]+[Shift]+[L]
[Ctrl]+[Spacebar]
Invoke autocomplete
[Ctrl]+[-] [Ctrl]+[Shift]+[-]
[Ctrl]+[F] [Ctrl]+[R]
Find Replace
214
The initial context menu options provide simple editing functions, except for: Search for '<string>' - Displays a submenu that enables you to locate the search string in a range of locations: Find in Tree finds the object containing the selected text in the Project Browser Go to Definition locates the definition of a symbol in the source code (if it is defined in the project) Search in Files opens the Debugger File Search 1006 facility, which enables you to locate the text string in other code files EA User Guide displays the description of the code item in the Enterprise Architect User Guide Google displays the results of a search on the text from a Google search MSDN displays the results of a search on the text in the Microsoft Developer Network (MSDN) Sun Java SE displays the results of a search on the text in the Sun Microsystems 'Sun Search' facility Wikipedia displays any entry on the object on the Wikipedia web site. 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.
215
The Quick Linker provides a simple and fast way to create new elements and connectors on a diagram. When an element is selected in a diagram, the Quick Linker arrow is displayed at the upper right corner of the element, as shown below:
Simply clicking and dragging the icon enables you to create new connectors and elements on a diagram, as explained in the following topics: Create New Elements 215 Create Connectors 217 The connectors and elements suggested by the Quick Linker are the commonest objects appropriate to the context. You can select others from the Enterprise Architect UML Toolbox pages. Also, a Technology Developer can edit the lists of elements and connectors, and create new combinations. For further information, see SDK for Enterprise Architect 1467 .
2. Drag the Quick Linker arrow onto an empty area of the diagram.
216
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.
217
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.
218
You can configure various settings using the Options 218 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 237 in the View | Visual Style submenu. Those settings and options are explored in this topic. See Also Custom Layouts
236
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. General 219 Standard Colors Diagram 223 Source Code Engineering
221 911
934
219
Diagram Appearance 224 Diagram Behavior 227 Diagram Sequence 228 Objects 230 Links 232 Communication Message Colors 233 XML Specifications 235 Note:
Attribute/Operations ActionScript 922 C 923 C# 924 C++ 925 Delphi 926 Java 929 PHP 930
915
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.16.1.1 General
The General page of the Options dialog is shown below:
Option Author Clipboard Format Double-click on Browser Use Jet 4.0 - requires restart
Use to Set the default author when new elements are created and modifications made. Set the graphic format in which to save image to the clipboard; Metafile has the best detail. Configure the Project Browser behavior
58
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. Apply the guillemet characters to stereotypes. For some double byte
220
Use to character sets, it is best to select this checkbox. Enable you to use customized rich text format code in report templates when generating reports with the Legacy RTF Report Generator 1201 . From release 7.0 of Enterprise Architect, with the Rich Text Notes facility, this option is not really necessary.
139
Project Directory File Directory Web Home Web Search Web Mail Confirm Deletes Allow Free Sorting Show Stereotypes Always open maximized Hide Properties Info Section Docked Windows Tabs on Bottom (requires restart) Main Diagram Tabs at Bottom (requires restart) Max Hierarchy View Depth Open Hierarchy View to
Specify the default location of Enterprise Architect projects. Specify the default location for files. Specify the default home page to open when you click on the Home button in the internal web browser 172 . Specify the default web page to open when clicking on the Web Search button in the internal web browser 172 . Specify the email server address (http://xxxxx/exchange/) for accessing email through the web browser 172 within Enterprise Architect. Use or bypass the Confirm Delete dialog; only clear this checkbox if you are an experienced user! Enable you to re-order elements within a package regardless of element type, in the Project Browser. Show element and feature stereotypes in the Project Browser. Ensure that Enterprise Architect always starts up in a maximized window. Hide or show the properties information status bar on the Properties window. Display the docked window tabs at the bottom of the window (default). Clear the checkbox to show the tabs at the top of the windows. Display the diagram tabs at the bottom of the main view (default). Clear the checkbox to show the tabs at the top of the main view. Set the maximum number of levels the hierarchy can open to on the Hierarchy window 194 . Set the initial number of levels the hierarchy opens to on the Hierarchy window 194 .
221
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 Paper Element Fill Element Line Shadow Attribute Use to Define the paper (background) color in diagrams. Define the fill color of elements. Define the line color of elements. Define the color of element outline shadows. Define the color of attribute text.
222
Option Method Note Color Note Compartment Text Screen Connector Line Behavior Show Project Custom Colors in Element Format toolbar Notes:
Use to Define the color of method (operation) text. Define the note background color. Define the color of text in the element Note compartment. Define the screen (element) color. Define the connector line color. Define the color for behaviors in Activity diagrams. Enable use of project custom colors; for more information on setting and getting the custom colors see the Get and Set Project Custom Colors 362 topic.
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 224 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 314 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 360 dialog displays. To change the appearance of a specific element on the current diagram only, use the Format 136 toolbar 136 . If the Format toolbar is not displayed, select the View | Toolbars | Format Tool menu option.
223
3.16.1.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 Default Page Size Print with Border Landscape Show Public Features Show Protected Features Show Private Features Show Diagram Notes Use Opaque Diagram Labels Strict UML Syntax Disable fully scoped object names
Use to Show the default page size for new diagrams, which you set by clicking on the Page Setup button to display the Page Setup dialog. Print pages with a border. Print pages in landscape orientation. This checkbox is controlled from the Page Setup dialog. Set the default visibility of Class features.
Display the diagram details in the top left corner of all diagrams in the model. Details include diagram name, package, version and author. Specify where opaque diagram labels should display. Screen and Printing are best, Clipboard and Files might not be desirable. Enforce compliance with UML syntax when adding new connectors and other structures. Disable fully scoped object names, when an element is in a diagram; don't 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. Enable the creation date on the Diagram Properties dialog to be altered.
224
Option Zoom to best scale Auto-pan with middle mouse button Scale Saved Bitmaps to Image Memory Limit
Use to Resize diagrams to neatly fit the screen. Turn on auto-panning using the middle mouse button. With this option off, the middle mouse button causes a different type of panning. Enable Enterprise Architect to save bitmaps at a higher resolution, suitable for using in published works. 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. 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 1338 is a labeled outline around the diagram image, providing both a border and a reference.
Diagram Frames
3.16.1.3.1 Appearance
The Diagram Appearance page of the Options dialog enables you to define how diagrams and their contents appear on display.
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:
1998-2009 Sparx Systems Pty Ltd
225
Option
Use to Basic is GDI32; it does not provide anti-aliasing and gradient fills Enhanced-1 is parallel to Windows GDI+ but internal to Enterprise Architect; it provides anti-aliasing and gradient fills, and operates well across different platforms Enhanced-2 is Windows GDI+; this can vary across different platforms, performing better than Enhanced-1 in some environments, and less well in others. Experiment with these options and see which works best for your system and requirements.
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 138 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 your diagrams in color. Deselect the checkbox to print the diagrams in black and white. Force text anti-aliasing in diagrams. If you deselect the checkbox, Enterprise Architect applies the MS Windows default setting. Therefore, if you do not want to use anti-aliasing, ensure that the Windows anti-aliasing default is also set to OFF.
Determine the behavior of Enterprise Architect when text at zoom levels 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. Display element names in bold text. Display a shadow around the bottom and right edges of each element in a diagram. Use different text format when external metafile readers are causing issues.
Bold Element Names Element Shadows On Invert rotated text for metafiles Use Watermark Text
Add a watermark to any diagrams you print. Define the watermark text, if a watermark is to be used.
Show Gradient Fill for Paper Switch between having a color gradient in the diagram background, or having a solid, uniform background color. Color Gradient Fill Direction For an Element Select the direction for the color gradient within element boxes, or <none> for no color gradient.
226
To set the default fonts, follow the steps below: 1. On the Appearance page of the Options dialog, click on the Configure Default Element Fonts button. The Configure Default Fonts dialog displays.
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 344 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. 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 225 field.
227
3.16.1.3.2 Behavior
The Diagram Behavior page of the Options dialog enables you to define how a diagram responds to actions taken on it.
Use to 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. Automatically apply the classifier style of the element an instance is instantiated from when the instance is created. Show life lines for Sequence elements in non-Sequence diagrams. Show all relationships in a diagram layout; deselect the checkbox to show only Generalizations and Associations. Automatically save your changes as you work, without having to confirm prompts to do so. Display any parents of elements in the diagram that are not part of the diagram. 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. Display connected items on packages.
Instance has Classifier style Show Life Lines Layout uses all relations Auto Save Changes Show 'Hidden' Parents Auto Group Elements
228
Option Shift-Mouse Autoscroll Use Automatic SubActivities Always Highlight Context Element Objects Snap to Grid Show Grid Grid Size Auto Tidy Tidy line gap
Use to Enable you to press and hold [Shift] and use the mouse to autoscroll around diagrams. Generate a new Structured Activity linked to the diagram from a Structured Activity diagram dragged from the Project Browser. Show a hatch border
365
Snap all elements to the grid lines. Display the grid. Specify the grid size, if you have selected Objects Snap to Grid. Automatically tidy line angles 443 for custom connectors. This 'nudges' the custom line into horizontal and vertical increments. Specify the amount Enterprise Architect should enable you to move a line away from horizontal and vertical when you are tidying lines 443 for custom connectors. (See Auto Tidy above). Display the alias instead of the element name on elements with aliases. Display both the element name and the Alias in the format (Alias) name. Replace the Alias property of instances with a Role property.
Alias only Alias and Name Use alias field for role
3.16.1.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.
229
Option Message Spacing Default page layout is Landscape Show Sequence Numbering Assume right to left messages are Return Default concurrency is Asynchronous Width Assume message returns GarbageCollect Name
Use to Specify the vertical gap (in points) between Sequence messages (can be overridden manually by dragging a message up or down). Set the default orientation of Sequence diagrams to landscape.
Set the default concurrency for Sequence Messages 1430 to Asynchronous; deselect to set the default concurrency to Synchronous. Select the line width (in points) of the 'focus of control' rectangle (thick part of lifeline). Assume implicit returns when none are explicitly drawn (recommended). Automatically truncate lifelines for created elements after the last message (that is, assume garbage collect rather than explicit delete). 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 nonEnglish character sets. Specify the size of the heading font (this overrides the font size in the Font dialog, above). Apply the Enterprise Architect system default heading font.
230
3.16.1.4 Objects
The Objects page of the Options dialog enables you to configure how elements look and respond in diagrams.
Option Version Phase Highlight References Reference Char(s) Prefix/Suffix Warn about spaces in class names Classes honor analysis stereotypes Show stereotype icon for requirements Support for Composite Objects Auto-resize marks diagram 'dirty'
Use to Set the default version for new elements. Set the default phase for new elements. Highlight parameters in operations that are passed by reference rather than value. Specify a character to use for the reference. Indicate whether to use the Reference Char(s) value as a prefix (before) or a suffix (after). Enable or hide the warning message that a Class, operation or attribute name has embedded spaces (which can cause coding problems). Show Classes as their stereotype; for example, if a Class is stereotyped as a Boundary, it appears as a Boundary rather than a Class. Show or hide a code letter in the top right corner of Requirement (E, for external), Change (C) and Issue (I) elements. Enable you to drag child elements onto parent elements in a diagram 353 , and automatically embed them (and drag embedded child elements out of parent elements, breaking the child-parent relationship). Ensure that auto-resizing of elements (such as Classes) marks the current diagram as changed (asterisk on the diagram name tab), so it should be saved.
231
Option Highlight {abstract} elements Allow elongated Use Cases Show status colors on diagrams Copy inheritance links on duplicate Port and Part type visible by default
Use to Highlight abstract elements with a suitable tag {abstract} in the top right of the Class. Stretch Use Cases or Use Case extension points with long names to enable space for the name. If you deselect the checkbox, Use Case re-sizing is proportional. Enable color coding
804
Duplicate Inheritance and Realization connectors when an edit/copy is performed. Enable Port and Part types to be shown by default.
Show buttons for selected Display the floating toolbar buttons to the left of the selected object. For example: Object on diagram
Edit Object on New Show column stereotype Extend Complexity UML 1.5 Components Show State Compartment Show Duplicate Tags Group Operations by Stereotype Group Attributes by Stereotype Sort Features Alphabetically Advanced
Automatically show the element Properties dialog when a new element is added. Hide or show the column stereotype used when data modeling.
Extend levels of complexity to five levels in the Complexity option in the Properties window. Otherwise only three levels are available. Use UML 1.5 components (Enterprise Architect versions 4 and later support UML 2.x). Show or hide the State Compartment divider under the state name. Enable duplicate tags to be shown. Group an element's operations by their stereotype on the diagram.
Sort element features alphabetically. Features include Attributes, Operations, Tags, Constraints and Test Cases. Set the visibility
231
232
3.16.1.5 Links
The Links page of the Options dialog shown below provides options for the creation, behavior, and notation for connectors.
Option General Edit Connector on New Association default = source --> target
Use to
Automatically show the connector Properties dialog when a new connector is added. Set the direction of new Associations to source->target (that is, with an arrow head at the target).
Generalization link style Default = Show Generalizations as tree style hierarchies. Tree Shade Qualifier boxes Lightly shade all Qualifier boxes.
233
Use to 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.
Display a prompt before deleting connectors 445 , 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.
Suppress Link Constraints Suppress Qualifier boxes Show Uses arrowheads Show Override Operation dialog on new connector Suppress ' + ' Role Scope Default Style Pen Width Routing Quick Linker Enable Show Help New Connector End-Points Center to center Exact placement Force perpendicular line
Suppress connector constraints in diagrams. Suppress boxes when displaying qualifiers. Show an arrowhead on Actor->Use Case Associations. Show the Override Operation dialog automatically when adding generalizations and realizations between Classes and Interfaces, if the target element has features that can be overridden. Ensure that the role and scope are not displayed on the diagram.
Set the default connector width. Set the default connector style for new connectors.
215 .
Add a 'help' menu option to the end of the Quick Linker menu.
Change the position of the dashed guide line for new connectors.
234
Select the Use Communication Message Coloring checkbox to turn on colored messages. 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.
235
Option Editor Format XMI Output Write Log Use DTD Export Diagrams Export Alternate Images
Use to Set the default editor for any XML documents you open within Enterprise Architect. Set whether or not formatting is applied to your XMI output. Set whether or not to write to a log file when you import or export XML. Set whether or not to use a Data Type Definition. Set whether or not to export diagrams when you export XML. Set whether or not to export the alternative images 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 736 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 818 to manage alternative images.
312
Set the XMI version to use: Enterprise Architect or Rose. 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.
236
Use to Set whether or not to export diagrams as images when you export XML. 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 XMI 1.0 you create, with ea$. in XMI 1.0 with ea$ Update Last Save Time in Controlled Packages Default XML Directory Set whether to update the timestamp of the last time controlled packages were saved. Define the default XML directory to use when importing and exporting XML.
When you select an option Enterprise Architect realigns toolbars and docked windows to the defaults for that option.
You can save up to five custom layouts. To save the current layout to Layout 1, ensure the Layout 1 option is selected, then click on the Save Layout to Selected button. If you make changes to an existing layout, to save them open the Custom Layouts dialog, select the radio button for the layout to update, then click on the Save Layout to Selected button. Load a saved layout by going to the Custom Layouts dialog, selecting the radio button for the layout to load, and click on the Load Selected Layout button.
237
Warning: If you have set keyboard shortcuts, these are not overridden if you switch to the Default Layout or the Iconix Layout option. However, if you have set keyboard shortcuts and you switch to a Custom Layout, your keyboard shortcuts are overridden, unless you have saved them as part of the custom layout you have switched to. For more information about setting keyboard shortcuts, see the Customize Keyboard 101 topic.
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
103
175
windows.
238
dialog.
Delete selected element(s) from model (through diagram OR Project Browser) Search for elements in the project Set focus to current window Autohide the current window Hide the current window View Project Browser View Properties window View System window View Testing window View Maintenance window Display Enterprise Architect UML Toolbox View Resources window View Source Code window View Debug Workbench View Notes window
Edit Edit Window Window Window View View View View View View View View View View
239
Function View Element Relationships window View Rules and Scenarios (Requirements and Constraints) window View Hierarchy window View Tagged Values window View Project Management window View Output window View Tasks Pane View Pan & Zoom Window View Model Search View Element List Open Discussion Forum Display Web Browser View Element Browser Add new package to project Add new diagram to package Add new element to package Create RTF documentation Generate HTML Report Generate Diagrams-only Report Generate package source code Synchronize package contents Import source directory Package Build Scripts Build Test Run Deploy Debug Run Step Into Step Over Step Out Debug Stop
Shortcut [Ctrl]+[Shift]+[2] [Ctrl]+[Shift]+[3] [Ctrl]+[Shift]+[4] [Ctrl]+[Shift]+[6] [Ctrl]+[Shift]+[7] [Ctrl]+[Shift]+[8] [Ctrl]+[Shift]+[9] [Ctrl]+[Shift]+[N] [Ctrl]+[Alt]+[A] [Ctrl]+[Alt]+[R] [Ctrl]+[Alt]+[U] [Ctrl]+[Alt]+[W] [Alt]+[9] [Ctrl]+[W] [Ctrl]+[Insert] [Ctrl]+[M] [F8] [Shift]+[F8] [Ctrl]+[Shift]+[F8] [Ctrl]+[Alt]+[K] [Ctrl]+[Alt]+[M] [Ctrl]+[Shift]+[U] [Shift]+[F12] [Ctrl]+[Shift]+[F12] [Ctrl]+[Alt]+[T] [Ctrl]+[Alt]+[N] [Ctrl]+[Shift]+[Alt]+[F12] [F6] [Shift]+[F6] [Alt]+[F6] [Ctrl]+[F6] [Ctrl]+[Alt]+[F6]
Category View View View View View View View View View View View View View Project Project Project Project Project Project Project Project Project Project Project Project Project Project Project Project Project Project Project
240
Shortcut [Ctrl]+[H] or [Ctrl]+[Alt]+[F] [Ctrl]+[Shift]+[H] [Ctrl]+[Alt]+[V] [Ctrl]+[Shift]+[L] [Ctrl]+[Alt]+[P] [Ctrl]+[Alt]+[I] [Ctrl]+[Alt]+[E] [Ctrl]+[Alt]+[C] [Ctrl]+[Alt]+[B] [F5] [Ctrl]+[S] [Ctrl]+[T] [Ctrl]+[B] [Ctrl]+[Shift]+[I] [Shift]+[Alt]+[G] [Shift]+[F3] or [Ctrl]+click [F3] [Alt]+[Enter] [Ctrl]+[Shift]+[T] [Ctrl]+[Alt]+[D] [F9] [F10] [Alt]+[-] [Alt]+[=] [Ctrl]+[Shift]+[F9] [Ctrl]+[Shift]+[F10] [Ctrl]+[F11] [Alt]+[Z] [Ctrl]+[G] or [F11] [Shift]+[], [], [] or []
Category Project
Transform current package Validate Selected Manage locks applied by current user Configure package control Import package from XMI Export package to XMI Import and export to CSV files Manage Baselines Diagram properties Save Save image to file Save image to clipboard Visible Relations Locate in Project Browser Repeat last element Repeat last connector Element Properties Add Tagged Value Linked Document Display Attribute Properties dialog Display Operation Properties dialog Space elements evenly horizontally Space elements evenly vertically Add attribute Add operation Add other type Auto-size selected elements Generate code from element Move element by increments
Project Project Project Project Project Project Project Project Diagram Diagram Diagram Diagram Diagram Diagram Diagram Diagram Element Element Element Element Element Element Element Element Element Element Element Element Element
241
Function Align top edges of selected elements Align selected elements on left boundaries Align selected elements on right boundaries Configure element default appearance Edit selected Manage embedded elements Insert new feature after current selection Locate in browser New element View source code Operation Override inherited features Configure element properties Select alternative image Specify which element features are visible on a diagram Set element parent or implement interface(s) Set references to other elements and diagrams Create Workbench Instance Locate diagrams where element is used View Properties dialog Check project data integrity Configure system options Spell check current package Spell check model Edit code generation templates Edit transformation templates Make text bullet list item Make text numbered list item Make text bold Make text italic Make text underlined Copy text
183
Shortcut [Ctrl]+[Alt]+[Up] [Ctrl]+[Alt]+[Left] [Ctrl]+[Alt]+[Right] [Ctrl]+[Shift]+[E] or [F4] [F2] [Ctrl]+[Shift]+[B] [Insert] [Alt]+[G] [Ctrl]+[M] in default editor [Ctrl]+[E] or [F12] [F10] [Ctrl]+[Shift]+[O] [Alt]+[ Enter] [Ctrl]+[Shift]+[W] [Ctrl]+[Shift]+[Y] [Ctrl]+[I] [Ctrl]+[J] [Ctrl]+[Shift]+[J] [Ctrl]+[U] [Enter] [Shift]+[F9] [Ctrl]+[F9] [Ctrl]+[Shift]+[F7] [Ctrl]+[F7] [Ctrl]+[Shift]+[P] [Ctrl]+[Alt]+[H] [Ctrl]+[.] (full stop) [Ctrl]+[1] [Ctrl]+[B] [Ctrl]+[I] [Ctrl]+[U] [Ctrl]+[C]
Category Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Element Tools Tools Tools Tools Settings Settings Element notes Element notes Element notes Element notes Element notes Everywhere
242
To list the shortcuts in a particular category (see the Command column in the above table), click on the dropdown arrow in the Category field and select the appropriate category.
243
The Enterprise Architect Project Discussion Forum can be used to discuss the development and progress of a project. To access the Discussion Forum, either: Select the View | Discussion Forum menu option Press [Ctrl]+[Alt]+[U], or Click on the Discussion Forum button in the Other Views
138
toolbar
The Discussion Forum window consists of three main areas: The message thread area, located in the left pane, is used to create new categories 245 and topics 245 and to delete 247 messages, using the forum context menu 244 . The message contents section, located in the top right hand section of the discussion forum, is used to view, print, create 246 , edit 247 , and reply to 247 discussion posts. The linked objects area, located in the lower right hand portion of the discussion forum, is used to associate model elements 248 and diagrams of interest with the forum post. You can create text to explain categories and topics, and you can create and respond to posts and replies. To display the text for any item, click on it. The text displays in the right-hand Forum panel. To edit or print the text, double-click on the item. The icons beside the Forum items have the following meanings: Post read
244
Post unread Reply read Reply unread Category (name in bold indicates category is unread) Topic read Topic unread
new Topic
245
or new Post
246
to the forum.
Alternatively, click on the New icon in the Forum toolbar. Create a reply
247
Alternatively, click on the New icon in the Forum toolbar. Edit Edit
247
Alternatively, click on the Edit icon in the Forum toolbar. Rename [F2] Copy Path to Clipboard Refresh Category 'xyz' Refresh Topic 'xyz' Refresh Post 'xyz' Reload Discussion Forum Mark all items as read Edit the name, in situ, of the currently-selected item. Copy the path
249
Refresh the named category, topic or post, getting new replies, posts and topics that other users might have created. Alternatively, click on the Refresh icon in the Forum toolbar. Reload the entire Discussion Forum, getting new posts and topics.
243 . 243 .
Mark all items as unread Mark the entire contents of the Discussion Forum as unread Mark branch as read Mark branch unread Mark 'xyz' unread Forum Connections... Mark this item and all its contents as read. Mark this item and all its contents as unread. Mark only this item as unread. Access other discussion forums models located on servers.
249
Alternatively, click on the Connection Options icon in the Forum toolbar. Forum Options... Delete Category <xyz> Delete Topic <xyz> Delete Post <xyz> Change the loading behavior Delete
247 249
of the forum.
this category, topic, post or reply, and all sub-topics and sub-posts.
245
2. Enter the Category name and, if necessary, select the appropriate author name. The authors in the drop-down list are defined in the Project Authors dialog. For more information see the Project Authors 796 topic. 3. Click on the OK button. The Category name is added to the Forum hierarchy in the left hand panel, and the Create New Topic 245 dialog automatically displays. 4. Either add the new Topic or click on the Cancel button. Alternatively: 1. Click on a category name. 2. Click on the New icon in the forum toolbar. The Create New dialog displays.
3. The Item Type panel defaults to Category. 4. Enter the Category name and, if necessary, select the appropriate author name. 5. Click on the OK button. The Category name is added to the Forum hierarchy in the left hand panel, and the Create New Topic 245 dialog automatically displays. 6. Either add the new Topic or click on the Cancel button.
The creation details for the new Category display in the right-hand panel. You cannot change these details. To add explanatory text for the Category, double-click on the Category name in the Forum hierarchy. The Forum Editor 248 displays in the right-hand panel.
246
2. Enter the Topic name and select the appropriate author name. 3. Click on the OK button. The Topic name is added to the Forum hierarchy in the left hand panel. Alternatively: 1. Click on the appropriate category name. 2. Click on the New icon in the forum toolbar. The Create New dialog displays.
3. In the Item Type panel, click on the Topic radio button. 4. Enter the Topic name and, if necessary, select the appropriate author name. 5. Click on the OK button. The Topic name is added to the Forum hierarchy in the left hand panel,
The creation details for the new Topic display in the right-hand panel. You cannot change these details. To add explanatory text for the Topic, double-click on the Topic name in the Forum hierarchy. The Forum Editor 248 displays in the right-hand panel. The topic is now available for you or any other user to create Posts
246
244
2. Enter the Post name and select the appropriate author name. 3. Click on the OK button. The Post name is added to the Forum hierarchy in the left hand panel, and the
1998-2009 Sparx Systems Pty Ltd
247
Forum Editor
248
4. Type in, format and save the contents of the Post. You can also drag in 248 element entries from the Project Browser, Model Search 156 dialog, Model Views 148 window, or Element List 143 . 143 Other users can now reply to the Post; see Reply to a Post
247 .
244
2. If required, in the Name field edit the Post title to indicate any change or addition to the subject. 3. Again, if required, in the Author field select the appropriate author name. 4. Click on the OK button. A reply entry displays in the Forum hierarchy, underneath the Post you are replying to, and the Forum Editor 248 displays in the right-hand panel. 5. Type in, format and save the contents of the reply. You can also drag in 248 element entries from the Model Search 156 dialog, the Model Views 148 window, or the Element List 143 . 143 Other users can reply to the Post and to your response.
option
If it is just the name of the item that requires changing, click on the name and press [F2]. You can now retype the name in place.
248
and Topics
The editor provides a set of standard functions that operate in the same way as those in Word for Windows. When you have completed your text, click on the Save icon in the toolbar and then click on another item in the forum to exit the message. The text is saved in the Forum item. To display the text in the right-hand panel, click on the item once.
To access the navigation options of each element 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 Open Properties In Diagrams Delete Link Use to Open the diagram. Display the element properties for the selected element. Open the diagram in which the element is used, or display a list of several diagrams in which the element has been used. Delete the association between the message and the element.
249
Note: You cannot associate elements and diagrams with Topics or Categories, only with Posts and replies.
From here you can: Mark All Unread - Resets all posts you have read to 'unread' (bolds all items in the Forum lists) Load forum data when required - The fastest loading option; Forum data is only loaded on demand - for example, when you read a post Preload all forum data - Caches the entire contents of the forum on load; this takes longer to load but, once completed, maneuvering the forum is faster.
250
2. Click on the New button and select the Enterprise Architect model in which to access the discussion form. Click on the Save button; the model name displays in the Connection Name field and in the Forum Connections panel. 3. Select the check box against the model name in the Forum Connections panel. 4. Click on the Open Selected Forum button. The connection now switches to the forum in the selected model. The Discussion Forum now shows the discussion in the selected forum. Option Connection Name Connection Type Target Model New Delete Forum Connections Prompt for connection Open Selected Forum Use To Verify the name of the selected model. Specify the type of Enterprise Architect model: a local .EAP file (as above) or a model on a remote server 629 . Verify the path to the selected model. Create a new Discussion Forum connection. Delete the currently selected connection from the Forum Connections list. List all forum connections created. Ensure that, each time you select the Discussion Forum option from the main menu, the Forum Connections dialog displays. Switch the Discussion Forum to the one selected in the Forum Connections list.
251
Enterprise Architect provides a powerful spell checking facility. This operates at the project level and enables you to quickly spell check an entire project. See Also Using the Spell Checker Correcting Words 252 Select Language 253
251
252
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 visible edit area. If an error is detected, the Check Spelling dialog displays, offering several options 252 to correct the error.
253
To correct the current word you can: Modify the spelling by hand and click on the Change or Change All button to change the word to that spelling Click on a suggested alternative and click on the Change or Change All button to change the word to that spelling Click on the Ignore or Ignore All button to exclude the word from the spell check Click on the Add button to add the word to the current user dictionary Click on the Suggest button to list alternative spellings or words Click on the Cancel button to abort the spell check entirely.
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.
Part
IV
255
Enterprise Architect performs a number of tasks that are suited to a variety of professions. The way you use Enterprise Architect can depend on your role within a project. 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 256 Software Developer 261 Software Architect 258 Software Engineer 260 Project Manager 263 Tester 264 Database Administrator 268 Implementation Manager 265 Technology Developer 267
Click on the appropriate role title to explore how Enterprise Architect can assist you in carrying out your role within a model driven project.
256
Model Requirements
Gathering requirements 569 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.
257
258
259
679
260
270
261
4.4 Developers
Developers can use Enterprise Architect to perform round trip code engineering 882 , which includes reverse engineering of existing code and generation of code 892 from UML Class elements 1378 .
State Machine 1252 , Package 1294 and Activity 1248 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 884 code from a number of supported languages and view the existing code as Class diagrams 1295 . 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.
262
with particular Classes (often a Class can have one or more State Machine diagrams used to fully describe its potential states).
965
263
Resource Management
Managing the allocation of resources 833 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.
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 869 , changes, defects 862 and tasks 866 . They can also create and maintain a project Glossary 874 of processes, procedures, terms and descriptions.
264
4.6 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 569 and constraints 386 . You add scenarios to model elements, and use element defects 858 to report problems associated with model elements. For more detailed information on testing, see the Introduction to Testing in Enterprise Architect
842
topic.
Test Cases
With Enterprise Architect, Quality Assurance personnel can set a series of tests for each UML element. The test types include Unit testing, Acceptance testing, System testing and Scenario testing.
265
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.
266
Maintenance
Enterprise Architect enables you to track and assign maintenance 857 -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.
267
UML Profiles
By creating UML Profiles 466 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 483 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 937 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 489 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.
268
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.
593
Part
270
In relation to using Enterprise Architect, UML 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.
.
46
For examples of the UML models that Enterprise Architect can help you build, see the Model Templates topic.
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 Create a Project - Quick Start 29 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: Work Work Work Work With With With With Packages 271 Diagrams 274 Elements 333 Connectors 432 .
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 457 is an effective and convenient method of visualizing relationships quickly and definitively.
271
A Package is a container of model elements, and is displayed in the Project Browser using the 'folder' icon familiar to Windows users. This topic explores the tasks you can perform with packages, including: Open a package 300 Add a package 271 Rename a package 272 Drag a package onto a diagram Show or hide a package 273 Delete a package 273 .
272
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 755 permission to update or delete a package.
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 704 , 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.
272
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 279 displays. 8. If you have selected to put the package under version control, the Package Control Options dialog displays. Complete this dialog 686 as required. Tip: You can also add a package using the Enterprise Architect UML Toolbox and pasting a new package element 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
741 .
273
273
4. Select or clear the Package Contents checkbox as required. 5. Click on the OK button.
274
Diagrams are collections of project elements laid out and inter-connected as required. Enterprise Architect supports all of the UML diagrams, as well as some 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 looked at these illustrations, go to the following topics: Diagram Context Menu Diagram Tasks 298 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.
277
275
276
277
The diagram context menu enables you to: View the Diagram Properties 318 dialog Add Swimlanes 311 or a Swimlanes Matrix 308 to the diagram Protect a diagram from inadvertent changes (Lock Diagram 317 ) 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 761 topic. Insert various elements into a diagram (see below) Paste copied element 297 (s) as a link or as new elements Paste an image 77 held on the clipboard into the diagram Make all the elements on the diagram selectable. 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. Save the current diagram as a Profile 1481 Import, or reverse engineer, source code 885 (not available in the Desktop edition) Import database tables from an ODBC data source 1111 (not available in the Desktop edition) Save any changes to the current diagram Display the diagram contents as an Element List 143 instead of as a diagram View the Enterprise Architect Help on the type of diagram currently displayed.
Insert Items
When you click on the New Element or Connector context menu option, a list of elements and connectors displays, as shown below for a Class diagram:
278
The structure of this list is as follows: Other - expands to offer options to select elements and connectors from diagram types other than either the current diagram type or pinned Enterprise Architect Toolbox pages The expanded list of elements and connectors for the current diagram type Collapsed lists of elements and connectors for pages that have been pinned in the Toolbox; if an MDG Technology: is active automatically pins Toolbox pages, and has pages that redefine UML or Extended pages the MDG Technology pages override the UML or Extended pages, which are not shown (At the end) Common - expands to display a list of the common elements and connectors.
297
279
Copy Image to Clipboard 298 Present Diagrams in a Model Views Slideshow 154 Set Default Diagram 326 Change Diagram Type 298 Open a Package 300 Duplicate a Diagram 299 Feature Visibility 300 Insert Diagram Properties Note 302 Autosize Elements 303 Paste from the Project Browser 303 Place Related Elements on Current Diagram 307 Swimlanes 311 Swimlanes Matrix 308 Using the Image Manager 312 Show Realized Interfaces for a Class 316 Label Menu Section 316 Pan and Zoom a Diagram 331 Move Diagram Sections 332 View Last and Next Diagram 318 Set Diagram Page Size 330 Scale Image to Page Size 329 Lock Diagram 317 Manage Legend Elements 326 Lay Out a Diagram 293 Set Diagram Properties 318 Undo Last Action 318 Redo Last Action 318
280
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 1247 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).
281
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 Palette 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 282 Box 285 Per Page 286 Digraph 287 Spring 288 Neaten 289 Converge/Diverge 289 Fan Relations 291 Auto Route 292 5. When you have completed the fields, click on the button.
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 manually adjust the final result of this automatic process.
293 .
).
282
To invoke these layouts, follow the steps below: 1. Follow the general Layout Diagrams required.
280
2. Click on the drop-down arrow in the Sort By: field and select the required sort parameter. The options are:
1998-2009 Sparx Systems Pty Ltd
283
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. 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. Diagram A - Top To Bottom Layout
284
285
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:
286
280
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.
To invoke this layout, follow the steps below: 1. Follow the general Layout Diagrams
280
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)
1998-2009 Sparx Systems Pty Ltd
287
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 280 topic and, for details of the layout parameters, the Lay out a Diagram Automatically 293 topic.
288
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
280
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.
289
To invoke this layout, follow the steps below: 1. Follow the general Layout Diagrams
280
2. In the Threshold (px) field, type the height or width distance, in pixels, at which elements should be considered to be in the same row or column. A lower threshold value produces a tighter result, with only elements that are extremely similar - vertically or horizontally - considered to be in the same row or column. 3. In the Column Snap field, click on the drop-down arrow and select the appropriate alignment for elements in the same column. Left - elements are aligned with the left edge of the left-most element in the column Center - elements are aligned with the vertical center of the center-most element in the column Right - elements are aligned with the right edge of the right-most element in the column. 4. In the Row Snap field, click on the drop-down arrow and select the appropriate alignment for elements in the same row. Top - elements are aligned with the top edge of the highest element in the row Center - elements are aligned with the horizontal center of the center-most element in the row Bottom - elements are aligned with the bottom edge of the lowest element in the column.
290
To invoke this layout, follow the steps below: 1. Follow the general Layout Diagrams
280
2. For Direction, select the required layout: Converge - attracts the set of selected elements to the center point Diverge - repels the set of selected elements from the center point 3. The Amount (%) slider determines how far the elements are moved towards or away from the center point. The movement is the element's current distance from the center point multiplied by the percentage value set on the slider. In the Converge layout, the element moves towards the center point; in the Diverge layout the element moves further away from the center point. Set the slider to the required percentage.
291
To invoke this layout, follow the steps below: 1. Open the Layout Palette window; either: Select the View | More Windows | Layout menu option, or Right-click on the main toolbar and select the Layout Palette context menu option.
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 Palette 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 diagram (left to right, top to bottom)
292
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. 5. In the Padding (px) field, type the separation required between the selected element and its related elements, in pixels. 6. Select the connector direction to use in determining the related elements to lay out. Either: Incoming Nodes - to lay out related elements that have the selected element as the target Outgoing Nodes - to lay out related elements that have the selected element as the source. 7. In the Fan Edge field, click on the drop-down arrow and specify the edge of the selected element from which to lay out the related elements. Left - to arrange related elements to the left of the selected element Right - to arrange related elements to the right of the selected element Top - to arrange related elements from the top of the selected element Bottom - to arrange related elements from the bottom of the selected element.
To invoke this layout, follow the steps below: 1. Follow the general Layout Diagrams
280
2. When calculating connector routes, the algorithm divides the diagram into cells of a size determined by
1998-2009 Sparx Systems Pty Ltd
293
the Cell Size value. A smaller cell size results in connectors being placed closer together. In this Cell Size (px) field, type the value in pixels. 3. In the Element Margin field, type the preferred separation between connector segments and element borders, in pixels.
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.
294
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
1998-2009 Sparx Systems Pty Ltd
295
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.
296
297
them, then right-clicking on one of them and selecting the Delete selected items context menu option.
298
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.
299
3. Select the required diagram type. 4. Click on the OK button to save changes.
3. Select the operation to perform. The element is moved to the new position in the diagram perspective.
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.
300
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.
301
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 302 dialog. 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: <Profile>::<Stereotype>::<Tagged Value name>=<Value>, for example: BPMN::Activity::Activity Type = Task. (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 Rich Text Notes 139 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.
302
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.
303
To create the note, drag the Diagram Notes element from the Common page of the Enterprise Architect UML 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 321 dialog. You cannot move the diagram details, nor change the appearance. To hide the diagram details, deselect the checkbox.
command
1530
, Autosize
304
Three paste options are available: 1. Paste the element as a simple link. In this case the original element exists both in the current diagram and in the original source diagram. Changes to the element are reflected in all diagrams in which it is shown. 2. Paste as an instance 393 of the element. If the element can have instances such as an Object, Sequence instance or Node instance, you can drop the element in as an instance of the source element, with the classifier pre-set to the original source. This is useful when creating multiple instances of a Class in a Sequence diagram or Communication diagram. 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 404 and features, 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 227 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 579 Create Object From Attribute 378 Make Linked Element A Local Copy
366
305
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 303 to carry out.
306
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
303
topic.
When you hold [Ctrl] down and drag an Activity from the Project Browser onto the current diagram, The Paste Element dialog displays, prompting you to select the type of paste action to carry out.
Two options are available: Paste the Activity as a link: in this case the Activity appears in the current diagram as a simple reference to the original source Activity. Changes to the Activity in the diagram affect all other links to this Activity.
1998-2009 Sparx Systems Pty Ltd
307
Paste as an invocation of the Activity. For details of the other options on this dialog, see the Paste from Project Browser
303
topic.
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.
308
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.
309
310
lines display on the diagram. 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.
311
311
5.2.2.19 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.
312
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 of swimlanes within the diagram. and (up and down) buttons to change the order
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
308
313
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. Doubleclick on the required image filename to display the image in full size. On the Image Manager dialog, the following buttons are available: Option & Function Keys View [Alt]+[V] Add New [Alt]+[A] Use to Display the selected image in full size. Browse appropriate directories to search for and import new images. You can import images in .BMP, .PNG, .EMF, .WMF, .TGA, .PCX or .JPG format. Internally, Enterprise Architect stores the images in .PNG or metafile format to conserve space. Update Selected [Alt] Refresh the selected image; for example, after it has been modified. +[U] Delete [Alt]+[D] Delete the selected image. A message displays to indicate how many elements use the image. Click on the Continue button to delete information about the image from those elements, which then revert to their previous appearance. Close OK [Alt]+[O] Notes: If you are creating many elements of the same type that have a particular image, you should use a custom stereotype 477 with an associated metafile You can transport image files between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
Close the Image Manager dialog. Confirm selection of the alternative image for the element selected in the diagram.
and Import
314
2. Stretch the Boundary to a size that can contain all of the elements you intend to place on the diagram, and drag it to the edges of the diagram workspace. 3. Right-click on the Boundary element. The context menu displays. 4. Select the Z-Order | Send to Bottom menu option. This ensures that the Boundary is not displayed in front of any other element in the diagram. 5. Either: Press [Ctrl]+[Shift]+[W], or Right-click on the Boundary to display the context menu, and select the Appearance | Alternate Image menu option. 6. On the Image Manager 312 dialog, select an appropriate image as the diagram background and ensure that the image size is large enough to span the required size of the diagram background. 7. When you have selected the required image, click on the OK button. Alternatively, you can copy an image from another source onto the Windows clipboard, right-click on the Boundary element in the Enterprise Architect diagram, and select the Appearance | Apply Image from Clipboard context menu option.
315
316
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 only applies to the selected Class, and can be changed at any time.
Element Labels
The Labels menu associated with embedded elements provides the following options: Menu Option Set Label Color Hide Label Use to Specify a color for the label. Hide the label; to unhide the label, right-click on the element and select the Appearance | Show labels 343 context menu option.
317
Menu Option Bold Text Alignment Label Rotation Default Position Default Color
Use to Set the label font to bold. Align the text within the label text area. The options available from the submenu enable you to specify left, center and right alignment. Orient the label in the horizontal or vertical planes, with the vertical plane offering the option of clockwise or anti-clockwise position. Move the label to the initial default location. Set the label color to the default color.
Connector Labels
The Labels menu associated with connectors provides the following options: Menu Option Set Label Color Hide Label Bold Text Alignment Label Rotation Direction Use to Specify a color for the label. Hide the label; to unhide the label use the Visibility | Set Label Visibility on the connector context menu. Set the label font to bold. Align the text within the label text area. The options available from the submenu enable you to specify left, center and right alignment. Orientate the label horizontally or vertically and, if vertically, in a clockwise or anticlockwise position. 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.
448
option
This is part of the label, so if there is no label there is no direction indicator. Default Position Default Color Move the label to the default location. Set the label color to the initial default color.
318
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
326
319
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 319 Diagram Tab 321 Elements Tab 322 Features Tab 323 Connectors Tab 324
320
Use to Type the name of the diagram (defaults to the name of the parent package). Type or select the name of the person who created the diagram. Type the version number of the diagram (defaults to 1.0). 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 1468 tab and creating stereotypes with a Base Class of Diagram. Automatically display the date the diagram was created. Type the date and time on which the diagram was last modified (defaults to the current date and time). Type any additional notes about the diagram. You can format the notes using the Rich Text Notes 139 toolbar at the top of the field.
321
Field Use Alias if Available Show Additional Parents Show Page Border Show Diagram Details Show Sequence Notes Show Namespace Always Open as Element List Page Setup Print Page Header and Page Footer RTF Document Options Exclude image from RTF documents Document each contained
Use to Display the element alias as the name if the alias is specified. Show the name of all parents not in the current diagram for all Classes and interfaces. Show a page border to align elements with. Show diagram details in a note in the top left corner of the diagram. (Deselect to hide the diagram details.) Show the Sequence Notes on the current diagram. Show the namespace of each element on the diagram, under the element; that is, PackageName::ElementName. Always display the diagram contents as an Element List as a diagram. See Scale Image to Page Size
329 . 143
rather than
Add page headers and footers to a print-out of the diagram. The headers and footers are generated from the diagram characteristics, such as the name of the creator and the date of modification. Options
1157
Exclude this diagram image from any RTF document generated on the parent package or element. Include documentation on each element in the diagram, in any RTF
322
Use to document generated on the parent package or element. (Applies only in the Legacy RTF Report Generator 1201 ; for the extended RTF Report Generator, use the Generate RTF Documentation 1161 dialog.)
Divide each large diagram into separate pages in the RTF document. Note: This option is only effective when the Scaled Printing to None on the Print Advanced dialog.
329
option is set
Rotate Images
Rotate each diagram image by 90 degrees in the RTF document. Note: Only valid for bitmap (.bmp) images.
Use to For elements that have whole shapes drawn by Enterprise Architect (such as Analysis stereotypes 1398 ), draw the alternative shape (if defined). For elements that have an icon displayed in the top right corner, (such as an Artifact 1377 element) if Show Element Stereotypes is selected, display the stereotype icon instead of the stereotype text.
For elements that have whole shapes drawn by Enterprise Architect, if Use
323
Field
Use to Stereotype Icons is deselected, display any stereotype on the element. 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).
Display the Table Owner. For more information, see the Set Table Owner 1077 topic. Show the advanced property string for all elements; for example, {leaf}.
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 854 ) Maintenance (Maintenance Scripts) Package Contents Notes.
860
324
Use to Show or hide the qualifiers and visibility indicators on the diagram. Qualifiers include such things as the 'derived' symbol (/) and the public key symbol (PK). Visibility indicators 944 include such things as +, -, # and ~, which indicate the scope of access of the item (such as an attribute, operation or role).
Show the stereotypes on all features. Show the advanced property string for all element features, for example, {readOnly}. 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 Show Attribute Detail Show Parameter Detail Hide Class members according to their scope and methods that specify properties. See the Visible Class Members 325 topic. Select whether to show both the attribute name and type or the attribute name only. Control the display of method parameters. See the Visible Class Members 325 topic.
325
Field Show Relationships Show Collaboration Numbers Show Non-Navigable Ends Show Connector Property String Suppress All Connector Labels Connector Notation
Use to Show relationships in the current diagram. Show numbering in Communication diagrams. Indicate when an Association end is not navigable; a cross is presented at the Association connector. Show the property string for connectors.
Display the required connector notation: UML 2.1 - use the standard UML 2.1 notation for connectors Information Engineering - use the Information Engineering (IE) connection style; for more information see the http://www.agiledata. org/essays/dataModeling101 page IDEFX1 - use the Integrated Definition Methods IDEFX1 connection style; for more information see the http://www.idef.com/IDEF1X.html page.
326
menu
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 Enterprise Architect UML Toolbox onto the diagram (or click on the New Diagram Legend icon ( Elements toolbar, and click on the diagram). The Legend dialog displays. ) on the UML
327
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.
328
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
329
the diagram.
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 330 .
Note: Before printing, make sure you have selected the required page layout using the Page Setup button.
330
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.
1998-2009 Sparx Systems Pty Ltd
331
topic.
Zoom
You can zoom into and out from a diagram using the zoom buttons on the diagram toolbar, or by 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.
There are three ways to return the diagram to 100%: Click on the button Select Zoom to 100% from the Diagram | Zoom submenu [Ctrl]+middle-click the mouse. 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.
332
Fine Movement
To adjust (or 'nudge') the position of a single element or a selected group of elements, press [Shift]+["], [!], [#] or [$].
333
UML Models are constructed from elements, each of which has its own meaning, rules and notation. Elements can be used at different stages of the design process for different purposes. The basic elements for UML 2.1.1 are depicted in the following diagrams:
334
335
1120
336
Generate DDL - Generate DDL 1100 for a table, procedure or view Class Code Engineering 342 Appearance 343 UML Help - display the Enterprise Architect Help topic for the UML element type Delete [Ctrl]+[D] - delete the 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:
For State Lifeline and Value Lifeline elements, display the Configure Timeline 1271 dialog. Advanced Rule Composer Open the Advanced
337
sub-menu.
562
For a Rule Task element, invoke the Rule Composer tab in Business Rule Modeling.
337
Menu Option & Function Keys Other Properties Create (or Edit) Linked Document [Ctrl]+[Alt]+[D]
Use to For State Lifeline and Value Lifeline elements, display the Properties dialog 379 for the selected element. (Professional, Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions) Create 426 an RTF document linked to the element. Delete an existing linked document for the element.
338
dialog.
349 . 394
Instance Classifier [Ctrl]+[L] Set the instance classifier Classifier Properties [Ctrl]+[Alt]+[Enter] Make Composite Change to State (Value) Lifeline Show Composite Diagram Multiplicity Open the Properties
379
1400
Display a mini-picture of the contents of a composite element within that element. Define the multiplicity for the element, using the format defined on the Cardinality 816 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.
For an extended Use Case, display the Use Case Extension Points 1374 dialog, which you use to insert the point at which the behavior should be inserted. Connect the Class to a new Association Use rectangle notation
1375 1420
Association Class Use Rectangle (Circle) Notation Partition Activity Set Run State
1327
.
1390
Add a new instance variable to the element using the Define Run State dialog.
338
Menu Option & Function Keys Set Property Value Override Attribute Initializers [Ctrl]+[Shift]+[R] Convert to Instance Convert Linked Element To Local Copy Make Sender/Receiver Accept Time Event Set Object State [Ctrl] +[Shift]+[S] Define Concurrent Substates Use State Label Notation Deep History Set Attached Links Link to Diagram Note
Use to
(Part elements) Set the property value for the Part, using the Set Property Values dialog. Pre-define initial values for attributes that can be used to override existing defaults.
Convert this classifier to an instance. Convert the occurrence of the element on this diagram from a link to the original element to a local copy of the element. Toggle the element from a sender to a receiver and vice versa. Change the notation for an Accept Event action to a Accept Time Event action. Set the state of an instance classifier based on the child states for that object. Define a set of substates composite state.
1255
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). Change the type of pseudo-state to a Deep History. Applies only when right-clicking on a History pseudo-state. Attach the selected Note element
438
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.
339
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.
Open the Insert Related Elements Create and attach a blank Note
359
dialog.
Add an Activity 1324 element as a child of the current Classifier 393 element, with either an Activity diagram or an Interaction Overview diagram. Add an Interaction 1352 element as a child of the current Classifier element, with either a Sequence diagram, a Communication diagram or a Timing diagram. Add a State Machine 1369 element as a child of the current Classifier element, with a State Machine diagram. For a Class element, create a Rule Flow Activity Rule Flow diagram, as a behavior for the Class.
557
Add a child diagram to the Classifier element, using the New Diagram dialog 279 .
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.
340
Use to Select the level down to which to insert connected elements, between 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.
For Link Type With Link Direction Limit to Element Type Layout Diagram When Complete
Select a type of connector to limit the inserted elements to those connected by that relationship type. Select whether the connectors are to be a single direction or bi-directional. Select a type of element to limit the inserted elements to those of that element type. Select whether Enterprise Architect should layout the diagram after the elements have been inserted. The layout applied is the Digraph 287 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.
Select a specific namespace from which the inserted elements are to come.
, in the
dialog.
341
Menu Option Add Activity Parameter Add Entry Point Add Exit Point Embedded Elements Show Realized Interfaces Show Dependent Interfaces
Use to Add an embedded Activity Parameter to the element. Add an embedded Entry Point to the element. Add an embedded Exit Point to the element. Open the Embedded Elements
341
dialog.
316
by a Class.
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.
342
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
316
context menu.
dialog. dialog.
300
397
Create a workbench instance 1002 for the Debug Workbench (if a debug command has been configured for the parent package).
343
Display the Appearance submenu; see the table below. Set the Z-Order
299
of the element.
Appearance Sub-Menu
Menu Option & Function Keys Default Appearance [F4] Use to
Override the global default appearance of all elements (which you set on the Options dialog, Standard Colors 221 page and Diagram Appearance 224 page) with a different default for just the selected element 360 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 136 .
Paste the image held on the clipboard onto the selected element.
312 .
Hide/Show Name Under Hides or redisplays the name label under an element with an alternative image.
344
Menu Option & Function Keys Image Set Font Show Labels Copy Appearance to Painter
Use to
344
Reveal any hidden labels on the element. Copy the default element appearance (set using the Default Appearance option, above) to the painter. You then paste the default appearance using the Paste Appearance option on the Diagram toolbar 135 . Copy the element image to the clipboard.
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.
345
This menu enables you to do the following: 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 300 for all selected elements Add the same Tagged Value 198 to all selected elements Automatically resize elements to match (element content permitting) Turn the Dockable option on or off for all selected elements on the current diagram Set the default appearance 360 and font 344 for multiple elements at once Make the selected elements on the diagram non-selectable 343 ; 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
346
Transform 1120 the selected elements Copy all selected elements to the clipboard Automatically adjust the layout of the selected elements on the diagram Delete all 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.
366
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 755 permission to update element properties or delete an element.
347
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 215 Create Elements Using the Enterprise Architect UML Toolbox Create Elements Using the Diagram Context Menu 277 Create a Group of Elements Using UML Patterns 483 Create Domain Specific Elements from UML Profiles 467 .
108
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 1316 - summary of all elements used in Behavioral diagrams Structural Diagram Elements 1376 - summary of all elements used in Structural diagrams
348
3. In the Name field, type the name of the element. 4. In the Type field, click on the drop-down arrow and select the element type. 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 select the stereotype. 6. Select the Open Properties Dialog on Creation checkbox if the Properties dialog is to open immediately after the element is created. 7. Deselect the Close Dialog on OK checkbox to add multiple elements in one session. 8. Click on the OK button to create the element. 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.
349
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 a 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 a 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 the diagram properties 318 .
350
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:
351
The Usage column indicates that the element is represented on the diagram as either a: Link - the element itself is on the diagram, or Classifier - the element is not itself on the diagram, but is a classifier of another element on the diagram. 3. Double-click on a line item to open the relevant diagram and display the selected element. 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.
352
4. You can open a selected 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.
353
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 230 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
354
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.
355
Warning: In a multi-user environment, if one person moves or updates the Project Browser structure, other users must reload their project 741 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.
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.
356
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.
357
To do this follow the steps below: 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
365
358
1. Click on the element in the Project Browser and press [Ctrl]+[Delete]. The element is completely removed from the model.
To show additional elements, follow the steps below: 1. Select the Tools | Options | Objects menu option. The Objects page of the Options dialog displays. 2. Click on the Advanced button. The Advanced Settings dialog displays.
359
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
741
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 Enterprise Architect UML Toolbox onto the diagram. If you have the Edit Object On New 230 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 window displays; type your text in that window. You can format the text if necessary, using the Rich Text Notes 139 toolbar at the top of the window. When you have completed the text, click on the OK button to save it.
360
Note: You can also create a note by clicking on the New Note icon (the text page) on the UML Elements and clicking on the diagram.
134
toolbar
Create Text
To create text, follow the steps below: 1. Drag the Text Element icon from the Common page of the Enterprise Architect UML Toolbox onto the diagram. The Notes window displays.
2. Type your text in the window. You can format the text if necessary, using the Rich Text Notes 139 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:
361
menu option.
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.
362
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.
2. Click on the OK button. The new border thickness is applied to the selected element or elements.
363
3. Deselect the Use Default Color checkbox to enable the Select button. 4. Click on the Select button. The Color dialog displays.
5. Click on the Define Custom Colors button. 6. Create the color in the color mixer panel on the right of the dialog.
364
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.
365
There are two other ways in which you can modify the appearance of elements in diagrams: You can define the default appearance of elements (and other structures) grouped in a diagram by using UML Profiles 466 . These provide a means of extending the UML Language, which enables you to build UML models in particular domains. They are based on additional stereotypes and Tagged Values that are applied to elements, attributes, methods, connectors, connector ends and so on. You can modify the appearance of elements (and connectors) of a specific type using stereotypes 477 . Stereotypes take precedence over templates; if you drop an unstereotyped element - a Class, for example - onto a diagram, Enterprise Architect searches the Templates package for a Class diagram that defines an unstereotyped Class, and applies that definition to the new Class. If you drop a stereotyped Class onto a diagram, the stereotype defines the Class appearance so the template is not accessed. Stereotypes are much more flexible for defining the appearance of an element under different scenarios.
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 Enterprise Architect UML 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.
366
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).
and/or operations
396
To move attributes and operations, see Move Attributes and Operations Between Elements
367
The image below shows AccountItem after the attribute Account has been dropped from the browser on to it.
To copy attributes and operations, see Copy Attributes and Operations Between Elements To move element features, follow the steps below:
1. In the Project Browser, locate the attributes and/or operations to move from the target element and select them while holding down [Ctrl] (single item select) or [Shift] (multiple item select).
368
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.
369
5.3.3 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.
370
1. In the Diagram view, either: Right-click on the element to be edited, and from the context menu select the Attributes menu option Click on the element and press [F9], or Drag the attribute from the Project Browser onto the element. 2. The <Element name> Attributes dialog displays.
371
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 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 437 topic.
371 ,
Detail
373
and Constraints
374
tabs.
See Also Attribute Tagged Values 375 Create Properties 375 Display Inherited Attributes 377 Create Object From Attribute 378
372
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 Name Alias Type Use to Display the name of the attribute. For a new attribute, type the name (with no spaces). Display an optional alias for the attribute. If necessary, type in a new alias. 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 817 topic. [ ... ] (Select) button Scope Stereotype Containment Derived Static Property Const Is Literal Open the Select <Item> 394 dialog, which you use to select or define a different attribute classifier type that might not be in the Type drop-down list. Define the attribute as Public, Protected, Private or Package. If necessary, click on the drop-down arrow and select a different scope. 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. 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. 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. Indicate that the attribute is a static member. Indicate that the attribute has automatic property creation Indicate that the attribute is a constant. (For Enumeration elements.) Defaults to selected, to define the attribute as an enumeration literal. Deselect to define the attribute as a normal element attribute. In the Attributes compartment on the diagram, the enumeration literals are listed separately, above the normal attributes. (Ensure that the Stereotype field for the normal attribute is not set to enum.) Initial Notes Display an optional initial value. If necessary, type in a new initial value. Enter any free text notes associated with the attribute. You can format the notes text using the Rich Text Notes 139 toolbar at the top of the field.
375 .
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).
1998-2009 Sparx Systems Pty Ltd
373
If you have changed the attribute details, click on the Save button to save the changes.
Field Multiplicity Lower bound Upper bound Ordered Multiplicity Collection Attribute is a Collection Allow Duplicates
Use to
Define a lower limit to the number of elements allowed in the collection. Define an upper limit to the number of elements allowed in the collection. Indicate that the collection is ordered. Code the attribute as an array, so that it can contain multiple concurrent values rather than a single value. Indicate that the attribute is a collection (array). Indicate that duplicates are allowed. Maps to the UML property isUnique, value FALSE).
Enter the name of the container type. (For Java code) indicate that the attribute can change
374
Field
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. To create a new constraint, click on the New button. Review, edit or complete the fields as indicated in the following table. Field Constraint Type (Notes) Use to Type the constraint name. Click on the drop-down arrow and select the constraint type. Type any comments or notes concerning the constraint.
If you have created or edited the data, click on the Save button to save the changes.
1998-2009 Sparx Systems Pty Ltd
375
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 in the Tagged Values tab. Note: You can define custom tags by creating a Custom Tagged Value. For more information see SDK for Enterprise Architect 1467 .
Select the Property checkbox. The Create Property Implementation dialog immediately displays.
376
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 the Feature Visibility 300 topic for the steps for doing this.
377
dialog.
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.
378
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.
379
5.3.4 Properties
This topic area covers element properties and their settings, responsibilities, constraints, connectors, scenarios, Tagged Values, associated files, object files and classifiers, and boundary element settings. To display the element Properties dialog, use any of the following methods: Select an element in the Diagram View and select the Element | Properties menu option Right-click on an element in the Diagram View, and select the Properties context menu option Select an element in the Diagram View, and press [Alt]+[Enter] Double-click on an element in the Diagram View Right-click on an element in the Project Browser, and select the Properties context menu option.
To suppress display of the Properties dialogue when placing a new element, uncheck the Edit Object on New option on the Objects page of the Options dialog (Tools | Options | Objects). 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 Set Table Properties 1075 topic. The dialog for a Class element of a stereotype other than Table is as shown in General Settings The dialog for an element of any other type does not have a Details tab. Activity elements have a Behavior
407 380 .
407
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 380 Details 382 Require 383 Constraints 386 Link 387 Scenario 388 Files 389 Tagged Values
390 390 ,
Follow the links for information on Tagged Values element 1371 appearance.
393 ,
380
Complete the following fields: Field Name Stereotype Abstract Author Status Scope Complexity Use to Change the element's name. (Optional) Type the name of a stereotype for the element, or click on the drop-down arrow and select one. Indicate that the element is abstract. Enter or select the name of the original author. Indicate the current status of the element (such as Approved, Proposed). Indicate the element's scope (public, private, protected, package). Indicate the complexity of the element (used for project estimation). Assign Easy, Medium
1998-2009 Sparx Systems Pty Ltd
381
Field
Use to or Hard.
Enter an alias (alternative display name) for the object. Select the programming language for the object. Enter free-text items such as keywords or context information. This can be filtered in Use Case Metrics and Search dialogs. Indicate the phase this element is to be implemented in (for example, 1, 1.1, 2.0 ...). Enter the version of the current element. Enter any free text notes associated with the element. You can format the notes text using the Rich Text Notes 139 toolbar at the top of the field .
381
Further facilities are made available by pressing the Advanced button. See Advanced Settings
for details.
382
5.3.4.2 Details
The Details tab of the element Properties dialog is shown below. It 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 Cardinality Use to Note: Cardinality and Multiplicity are effectively the same. It is recommended that you define the value in the Multiplicity field of the Advanced 381 dialog 381 ; this ensures that the value displays on the element in a diagram. Select the number of elements in a set for the Class. Visibility Select the visibility of the Class.
383
dialog displays.
397
Define operations for the Class. The Operations Properties Specify how concurrent activities should be processed.
dialog displays.
Define Collection Classes (for generating code from Association connectors) that apply to this Class. The Collection Classes for Association Roles 919 dialog displays. Select the type of Class template parameter to add or list. You can also edit or delete parameters. See the Parameterised Classes 1380 topic. Select a parameter and type any required argument for that parameter.
Type Arguments
5.3.4.3 Requirements
The Require tab of the element Properties dialog is shown below. Use this page to create requirements that this element is designed to meet. Requirements are of two types: internal requirements 573 (responsibilities) and external requirements 385 (system requirements, elements connected to this element by a Realize connector). Enterprise Architect shows both types, but you can only edit the internal type from this tab.
384
You can show the requirements for an element on the diagram directly, using the Feature Visibility (It is also possible to show inherited requirements in this way). Field/Button Requirement Type Use to Enter the name and high level detail of the requirement.
300
dialog.
Specify the type; for example, Functional or Non-functional. Functional requirements are things that the system must do, such as identify franked, unfranked and total credit for a dividend; non-functional requirements are things that the system must be, such as reliable, cost effective. Specify the date of the last requirement update. Specify the current status of the requirement. Identify the complexity of implementing the current requirement. Specify how urgent the requirement is. Specify the estimated stability of the requirement.
385
Field/Button
Use to This is an indication of the probability of the requirement - or understanding of the requirement - changing. High stability indicates a low probability of the requirement changing.
Record details of the requirement. You can format the notes text using the Rich Text Notes 139 toolbar at the top of the field. Make an internal responsibility into an external requirement Create a new requirement. Save changes to requirements. Delete a selected requirement. List the defined requirements associated with this element.
574 .
386
574
5.3.4.4 Constraints
The Constraints tab of the element Properties dialog is shown below. Elements can have associated constraints placed on them. These are 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 300 function to show constraints for an element on the diagram directly (it is also possible to show inherited constraints in this way).
387
3. In the Constraint field, type the name of the constraint. 4. In the Type and Status fields, click on the drop-down arrow and select the constraint type (Precondition, Post-condition or Invariant) and status. 5. In the larger text field, type any additional notes required. 6. Click on the Save button. Constraints are used in conjunction with responsibilities element operates and exists.
383
5.3.4.5 Links
The Links tab of the element Properties dialog displays a list of all relationships 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.
388
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 451 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.
5.3.4.6 Scenarios
The Scenario tab of the element Properties dialog is shown below. A scenario is a real world sequence of operations that describes how this element works in real-time. It can be applied to any element and can describe functional behavior, business work flows and end-to-end business processes.
Use to Type in the name of the scenario. Specify the type of scenario; for example, basic path, alternative path. Record a textual description of the scenario, usually depicted in steps of how the user
389
Field
Use to uses the current element. You can format the notes text using the Rich Text Notes toolbar at the top of the field.
139
Scenarios
Field/Button File Path Type Last Write Size Notes Files Launch
Use to Type in or browse for the directory path and name of the file. Display the local file or web address. Display the date and time the file was last updated. Display the size of the file. Type in free text about the file. Display the list of linked files. Open the selected file. Local files open with their default application and web files open in the default browser.
390
window
196
tab.
2. Click on the New Tag button in the Tagged Values toolbar or press [Ctrl]+[N]. 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), then in the Value field type the appropriate value.
4. Click on the OK button to save the Tagged Value. Tip: You can define custom tags using a predefined Tagged Value Type. For more information see SDK for Enterprise Architect 1547 Tagged Values are the preferred method of extending the code generation capabilities of the modeling tool per element / per language.
391
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.
392
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 window and manually delete the item. There is currently no shortcut to delete tags from multiple elements at one time.
1998-2009 Sparx Systems Pty Ltd
393
To add notes to the Tagged Value, go to the Tagged Values window, click on the Tagged Value name, and click on the Edit Notes button in the window toolbar. The Notes dialog displays.
Any Notes text you enter also displays in the Info section at the bottom of the Tagged Values window.
394
The Object name is then displayed as Object: Classifier; for example a Person object named Joe Smith is displayed as Joe Smith: Person.
To select a required item, follow the steps below: 1. During an operation, when it is necessary to locate an element or feature, you click on the [ ... ] (browse) button. The Select <Item> dialog displays.
395
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. 5. 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:
396
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. 6. Click on the required item. 7. 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.
5.3.5.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.
397
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 437 topic.
408
398
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 Indexes, Triggers and Check Constraints 1098 topic. The following illustrations are for the operations of an Object element and a State element.
399
Use to Display the selected operation name. Display the parameter list. See Operation Parameters what this string can contain. Open the Parameters dialog. Display the data type returned by the operation. (Not shown for State or State Machine elements.)
408
394
(Not shown for State or State Machine elements.) Define the action of the operation: do, exit or entry. (For State
1361
or State Machine
1369
elements.)
Select Public/Protected/Private/Package. Specify an optional stereotype for this operation. Set the concurrency of the operation. Define an optional alias for the operation. Enter free text notes. You can format this text if necessary, using the Rich Text Notes toolbar 139 at the top of the field. 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.)
Return Array
Indicate that the return value is an array. (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.)
Static
Indicate that the operation is a static member. (Not shown for State or State Machine elements.)
Const
Indicate that the return type of this method is constant. (Not shown for State or State Machine elements.)
Pure
Indicate that C++ is pure virtual syntax - for example: virtual void myFunction( ) = 0; (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.)
List the defined operations. Change the order of operations in the list. Create a new operation. Copy the currently selected operation.
400
Use to Save a new operation, or save modified details for existing operation. Delete the currently selected operation.
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.
401
3. Select the Show Behavior in Diagram checkbox. 4. Click on the Save button. See Also Initial Code
401
402
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:
403
404
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 SDK for Enterprise Architect 1547 .
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).
1998-2009 Sparx Systems Pty Ltd
405
406
407
408
410
409
Use to Type the parameter name. Select the data type of the parameter. Alternatively, click on the [ ... ] button and select the element classifier to define the type.
Type an optional default value for the parameter. Type a stereotype name, or click on the drop-down arrow and select a stereotype for the parameter. Indicate the way a parameter is passed to a function: In = By Value InOut = By Reference Out is passed by Reference, but only the return value is significant.
Set the parameter to const, even if passed by reference. Type an optional alias for the parameter. Place new parameters at the end of the list instead of the start. Type any additional notes on the parameter.
410
410
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 SDK for Enterprise Architect 1547 .
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.
411
3. In the Value field, set any required value. 4. Click on the Save button. 5. If appropriate, click on the New button and repeat steps 1 to 4 for another argument:parameter mapping. If you attempt to create an extra argument, a warning message displays:
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.
412
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: To... Change the name, scope or stereotype of the element or element item Display the dialog containing details of the element Insert a new item in the element Locate the item in the Project Browser Add an attribute to the element Add an operation to the element Insert a feature on the specific element item, such as Maintenance features and Testing features Select menu option... Edit Selected View Properties Or press... [F2] [Enter]
Insert New After Selected [Insert] Find in Project Browser Add Attribute Add Operation Add Other [Ctrl]+[Shift]+[F9] [Ctrl]+[Shift]+[F10] [Ctrl]+[F11]
413
Select menu option... Delete Selected from Model View Source code
Or press... [Delete]
Display the source code for the element. Navigate Diagram Selection, to navigate the diagram between elements without having to use the mouse Toggle element highlight option on and off
Other options that are available while editing element attributes or operations in a diagram include: To... Accept current changes Accept current changes and open a new slot to add a new item Abort the edit, without save Display the context menu for in-place editing Invoke the Classifier dialog Press... [Enter] [Ctrl]+[Enter] [Esc] [Shift]+[F10] [Ctrl]+[Space]
3. Right-click on the item. The context menu displays. 4. Select the Edit Selected menu option (or press [F2]) to enable you to edit the item directly from the diagram. The name of the attribute or operation is highlighted.
414
5. Delete or type over the name. Press [Enter] to accept the change, or [Esc] to cancel the change.
3. Right-click on the item. The context menu displays. 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 position before the name or within the existing attribute or operation stereotype (denoted by stereotype name).
6. Delete or type over the previous name to change the stereotype name of the attribute or operation. 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.
415
3. Right-click on the item. The context menu displays. 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.
6. Reassign the entry by typing in one of the following symbols: + indicates that the scope is Public - indicates that the scope is Private ~ indicates that the scope is Package # indicates that the scope is Protected. 7. Press [Enter] to save the change, or [Esc] to cancel the change. The diagram is updated to reflect the changes. (Also see the catalogNumber attribute in the above screen illustrations.)
416
3. Right-click on the item. The context menu displays. 4. Select the Edit Selected menu option (or press [F2]) to enable you to edit the attribute directly from the diagram. The name of the attribute is highlighted. 5. Right-click on the attribute name to display the context menu.
6. From the context menu, you can: Change the attribute classifier to static or fixed - select the static or fixed menu options as appropriate; the diagram is updated to reflect the changes. Display the Class properties - click on the Goto Definition menu option; Enterprise Architect locates the Class in the Project Browser and opens its Properties 379 dialog. If the data type is a raw data type, Enterprise Architect displays the message: The data type is a raw data type.
3. Right-click on the item. The context menu displays. 4. Select the Edit Selected menu option (or press [F2]) to enable you to edit the operation directly from the diagram. The name of the operation is highlighted. 5. Right-click on the data type of a parameter to display the context menu.
417
6. From the context menu you can: Change the operation classifier by clicking on the appropriate menu option - static, isquery, abstract or fixed. The diagram is updated to reflect the changes. Display the Class properties - click on the Goto Definition menu option. If the data type is Class, Enterprise Architect locates the Class in the Project Browser and opens its Properties 379 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.
3. Right-click on the item. The context menu displays. 4. Select the Edit Selected menu option (or press [F2]) to enable you to edit the item directly from the diagram. The name of the item is highlighted. 5. Right-click on the item name to display the context menu.
418
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. Press [Enter] to accept the change or [Esc] to cancel the change. The diagram is updated to reflect the changes.
419
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 click on the reference to the parameter (for example, bks: for a vector containing books). Either: Type the name of the parameter or Place the cursor after the reference, right-click the mouse to display the inline editing options context menu and select the Insert Classifier option.
394
dialog displays.
5. Locate and select the appropriate parameter, and click on the OK button. The parameter is displayed on the diagram. 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.
420
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 Scripts in Diagram 860 topic.
421
3. Either: Press [Ctrl]+[F11] or Right-click on the highlighted name to display the context menu and select the Add Other option. The Insert Feature dialog displays.
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.
422
6. Complete the fields 843 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 Scripts in Compartments 854 topic.
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 Rotates a Fork/Join element from vertical to horizontal and vice-versa.
423
Icon
When multiple elements are selected, displays the Diagram elements together. Toggles an Activity Partition
1327
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.
424
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.
You create linked documents from Linked Document Templates, which you define with the Document Template Editor; see the Create Linked Document Templates 430 and Edit Linked Document Templates topics. The Document Artifact and the Document Editor are illustrated below:
431
425
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 Model Components For Documentation 1164 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:
426
See Also Create Document Artifact 426 Link Document to UML Element 426 Edit Linked Documents 427 Hyperlink From Linked Document 428 Create Element From Document 429 Replace or Delete Linked Documents RTF Report Dialog Options 1159
429
or Deployment
1301
diagram.
Drag and drop the Document Artifact element from the Enterprise Architect UML Toolbox into your diagram.
Double-click on the Document Artifact element. The Linked Document Editor Document dialog.
427
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 430 and Edit Linked Document Templates 431 .
427
Click on an element in the Project Browser, Element List, Model Search or diagram, and: select the Element | Linked Document menu option press [Ctrl]+[Alt]+[D] or right-click and select the Linked Document option from the context menu. The following dialog displays.
Select the previously-created template from which to create the document. Click on the OK button. The Linked Document editor Note: When you have saved the document, an A symbol displays in the bottom right corner of the element.
427
For more information on how to create Linked Document Templates, see Create Linked Document Templates 430 and Edit Linked Document Templates 431 .
428
The following topics provide assistance on using the Document Editor. Scroll Through Text 1172 File and Print Options 1173 Cut and Paste Options 1174 Image and Object Imports 1176 Character Formatting 1177 Paragraph Formatting 1178 Tab Support 1179 Page Breaks and Repagination 1179 Insert Headers and Footers 1180 Insert Bookmarks 1180 Table Commands 1181 Sections and Columns 1184 Stylesheets and Table of Contents 1184 Text/Picture Frame and Drawing Objects 1189 View Options 142 Search/Replace Commands 1189 Hyperlink From Linked Document 428 Create Elements From Linked Documents 429
429
and Bookmarks
1180
topic.
1408
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 428 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 426 element or through the context menu 426 for an existing element (Professional, 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 UML menu option, and the required submenu option. 5. If you select the: Add new Class, Add new Requirement or Add new Issue option, the corresponding element is immediately created in the Project Browser. Add Element option, the New Element dialog 348 displays; specify the element type and - if appropriate - stereotype, and click on the OK button. Add Diagram option, the New Diagram 279 dialog displays; specify the diagram type and click on the OK button. 6. 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.
1. Click in the body of the document and press [Ctrl]+[A] to select all the document text. 2. Press [Delete]. 3. Right-click and select the File | Import context menu option. The Windows Open dialog displays, in which you can browse for the file to import into the document. 4. Click on the Save icon in the Linked Document screen toolbar. Alternatively, you can delete the linked document. To do this: 1. Click on an element in the Project Browser or diagram, and either: select the Element | Delete Linked Document menu option or 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.
430
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 Note: You can transport these linked document templates between models, using the Export Reference Data and Import Reference Data 820 options on the Tools menu.
819 431
431
The following topics provide assistance on using the Document Editor. Scroll Through Text 1172 File and Print Options 1173 Cut and Paste Options 1174 Image and Object Imports 1176 Character Formatting 1177 Paragraph Formatting 1178 Tab Support 1179 Page Breaks and Repagination 1179 Headers, Footers Hyperlinks and Bookmarks Table Commands 1181 Sections and Columns 1184 Stylesheets and Table of Contents 1184 Text/Picture Frame and Drawing Objects 1189 View Options 142 Search/Replace Commands 1189
1180
432
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 Connector Tasks 435 Connector Properties 451
432
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 528 , however, does enable you to create off-page connectors. You can also use the Suppress Line Segments 443 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.
433
434
to the connector.
434
Connector Aggregation
Aggregation
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.
of the connector.
Reverse the direction of the connector. For example, if the connector is an arrow, the arrowhead swaps to the other end. Specify how the properties of this Association specialize the properties of other Associations. Realize 1428 any information items conveyed 1427 on an Information Flow connector between these same two elements.
1426
Select a stereotype for the Dependency (or Trace, Role Binding, Occurrence or Represents connector). Display the Custom Properties 338 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.
Set the connector line style 441 - options are Direct, Auto Routing, Custom, Bezier, Tree (Horizontal) or Tree (Vertical). 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.
Insert an anchor point 441 on the line at the point of the cursor so you can change the shape of the line.
435
Use to
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 441 on the line at the point of the cursor. (This is the exact opposite of Bend Line at Cursor, and [Ctrl]+[Q] toggles the connector [Ctrl]+[Q] 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.
of a custom connector.
Visibility Sub-Menu
Menu Option Hide Connector Hide Connector in Other Diagrams Hide All Labels Set Label Visibility 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. Use to Hide the connector. To show the connector again, follow the steps in the Hide/Show Connector 447 topic. Hide or show the connector in other diagrams
447 .
Hide or show all labels attached to the connector. Hide or show labels
448
444
436
Hide/Show Connectors 447 Hide/Show Labels 448 Create Generalization Set 446 Change the Source or Target Element Set Relation Visibility 444 Add a Note to a Connector 438 Use Tree Style Hierarchy 450 Create a Connector 444 Show Uses Arrow Head 449 Set Association Specializations 449 .
440
Note: In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions, if security is enabled, you must have Update Element 755 permission to update or delete a connector.
108
Tip: To repeat 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 437 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 440 topic.
437
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:
438
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).
439
2. Select the Attach Note or Constraint menu option. The Link Relations dialog displays. 3. In the Link Type panel, select the Note or Constraint radio button as appropriate. 4. Check all the connectors that participate in the set. In the example below, two connectors have been checked to participate in a logical constraint.
5. Click on the OK button to create the note or constraint. 6. Double-click on the text box to display the Notes 359 dialog or Constraints appropriate text (and constraint type) for the note or constraint. Note: The constraint note is drawn slightly differently to a regular note, and has { and } automatically added to visually indicate the constraint form.
1323
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 441 ).
440
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.
441
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.
442
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 451 dialog.
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). 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 451 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.
443
444
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.
445
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.
446
If you select the Hide option, it has the same effect as hiding the connector 447 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 193 window 193 . 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 394 [ ... ] and select an existing one. 5. Check the IsMember column for the child subtypes that are part of this Generalization set.
1998-2009 Sparx Systems Pty Ltd
447
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.
448
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. Tip: To hide the connector in all of the diagrams listed, click on the Suppress All button. 4. Click on the OK button to save the changes.
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. To cancel edit mode without saving any changes, press [Esc].
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.
449
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.
3. Click on the Close button. When you save the Use Case diagram, the Use connectors change to display arrowheads.
450
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.
1998-2009 Sparx Systems Pty Ltd
451
The General tab enables you to configure the name of the connector (Link Name), the direction, the line style, the stereotype (optional) and a comment.
Use to Type in the name of the source element for the connector. Type in the name of the target element for the connector. (Optional) Type a name for the connector. If entered, the name displays on the diagram. (Optional) Type an alternative name or alias for the connector. 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).
452
Option Style
Use to Select the appropriate connection style; choose from: Direct, Auto-Routing, Bezier, Custom, Tree (Vertical) or Tree (Horizontal). (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 479 dialog. If entered, the stereotype is displayed on the diagram and over-rides the connector type in the RTF documentation.
Stereotype
Select the appropriate value for the scope (used for inheritance). Available only for Generalization connectors where the child Class is C++. (Optional) Type any notes on the connector. The notes are displayed in documentation, if required. You can format the text, using the Rich Notes Text 139 toolbar at the top of the field.
455
453
Use to Type in the name of the constraint. Specify the type of constraint (such as pre-condition). Type in any notes about the connector. Review the list of constraints for this connector.
454
Option <Type> Role Alias Role Notes Derived Owned Derived Union Multiplicity
Use to Type in the name of the role to be played. Type an alias for the role, if required. Type in any required notes about the role. Indicate that the role value or values can be computed from other information. Indicate that the role is owned by the opposite Class as opposed to the Association. Indicate that the role is derived from the properties that subset it. Specify the role multiplicity. (You can define the values of this field on the Cardinality tab of the UML Types dialog.)
816
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 373 . Ordered Indicate that the role is a list and the list is ordered.
1998-2009 Sparx Systems Pty Ltd
455
Use to Indicate that the role can contain duplicate elements (relevant only if multiplicity is > 1). Maps to the UML property isUnique (selecting the checkbox maps to the isUnique value of FALSE). Indicate the nature of the containment at the Destination (reference, value...). Select the access level for the role. Select the type of aggregation that this role uses. Select the level at which this role applies (instance or classifier). Select whether or not this role is navigable (non-navigable ends are shown depending on diagram properties). Select whether this role is subject to change. Type in any constraint on the role. Type any qualifiers or restrictions on the role. Separate multiple qualifiers with a semicolon. (Optional) Type or select the name of a stereotype that applies to this end of the Association. Type a role type that can be used when generating collection Classes for multiplicity > 1.
Containment Access Aggregation Target Scope Navigability Changeable Constraint(s) Qualifier(s) Stereotype Member Type 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.
456
3. Select Connector Source or Connector Target as required. 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 and value, or click on the drop-down arrow and select a predefined Tagged Value type. 6. Click on the OK button to save the changes.
457
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 and the row and 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 738 ). 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 You can also:
458
topic.
458
Select options 460 for modifying the type of information the Relationship Matrix displays Update, delete and create 461 relationships through the Relationship Matrix Export the contents 462 of the Relationship Matrix to a CSV file Print the contents 462 of the Relationship Matrix Save a profile 462 of the Relationship Matrix settings to monitor development of the same source and target packages Investigate the Source and Target elements 463 in the relationship.
Right-click on any package in the Project Browser, and select the Documentation | Open in Relationship Matrix | As Source or As Target context menu option. Once the Relationship Matrix opens you can: Set the source and target packages 460 Select which element type to show 458 Select connector type and direction to show
459
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.
459
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 457 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.
460
461
Select from the following options: Include Source Children - to recursively include child packages and contents under the Source Include Target Children - to recursively include child packages and contents under the Target Include All Extended Meta Types - to include elements that are extensions of a specified meta-type. For example, if there are Block elements (extending Class) in the package, selecting this option and specifying the type Class includes Class and Block elements, and any further derivatives of Block in the matrix. Sort Axes - to ensure package elements display in alphabetical order Show Package Names - to hide or show package names in the Relationship Matrix; this is useful for shortening the displayed texts, especially in circumstances where packages have long names Use Element Alias If Available - to display an element's alias instead of the element name, if an alias has been defined Show Level Numbering If Available - to reproduce level numbering in the Relationship Matrix, if it is turned on in the Project Browser; see the screen illustration in the Relationship Matrix 457 topic.
If you have selected Delete relationship, Enterprise Architect prompts you to confirm this action. 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.
462
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).
463
This enables you to: Display the Properties dialog for the selected element Display either the only diagram in which the element is used, with the element highlighted, or a list of the diagrams in which the element is used; you then select and open a diagram from the list Locate and highlight the element name in the Project Browser Make the selected element the context or focus in any docked screens or windows that are open, such as the Tagged Values window.
Part
VI
465
Extending UML |
6 Extending UML
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.
Requirements Management
Gathering requirements is typically the first step in developing a solution, be it for developing a software application or for detailing a business process. Requirements are essentially 'what the system must do'. The requirements management 569 built into Enterprise Architect provides full support for defining, organizing and managing the requirements that drive the project.
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
477
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
466
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
483
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. For more information on MDG Technologies, see the MDG Technologies
489
topic.
Business Modeling
Modeling the business process 550 is an essential part of any software development process. It enables you to establish the broad outline and procedures that govern what it is a business does. As the Business Process Model typically has a broader range than just the software system being considered, it also enables you to clearly map what is in the scope of the proposed system and what is to be implemented in other ways.
466
467
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 SDK for Enterprise Architect 1467
470
A Technology Developer might create a new Profile, which they can save (export) to disk for future UML
468
1470
and exporting
1481
Import a Profile
To import a Profile, follow the steps below: 1. Open the Resources window (View | 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.
469
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 469 .
To add a Profile-based element to a diagram, click on the element in the Toolbox page or the Resources window, and drag it onto the diagram. To add a Profile-based connector to a diagram, click on the connector in the Toolbox page or Resources window, then click on the source element in the diagram and drag it to the target. You can also drag the connector from the Resources window to the source, which automatically displays the following list box. Select a target element from the list to create the connector to that target.
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.
470
When you create an element from the XSDComplexType stereotype (by dragging from the Profile Elements page of the Enterprise Architect UML Toolbox onto a diagram), the Tagged Values are added automatically.
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 1542 topic.) Where no Value list exists, the tag accepts free text.
471
Notes: 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.
472
Metafile Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Yes Yes
473
AppliesTo / Apply "attribute" "operation" "association" "associationEnd" "generalization" "dependency" "transition" "objectflow" "startnode" "stopnode" "note" "decision" "aggregation"
Type Attribute Operation Connector AssociationEnd Connector Connector Connector Connector Element Element Element Element Connector
Metafile
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.
474
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>
stereotype cx cy _image _imageFile metafile name notes _sizeX _sizeY tag default description name values
constraint
Yes No Yes
475
476
</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>
477
UML supports a large number of stereotypes, which 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 481 associated with them. For further definition of stereotypes, see the OMG UML specification (UML Superstructure Specification, v2.1.1, section 18.3.8, pp. 667-672). A stereotype is generally displayed as in the example below (where myStereotype2 is the stereotype).
482 ,
as below:
A metafile can be associated with the applied stereotype, as in the example below:
478
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 1468 and applying Shape Scripts 1523 , see SDK for Enterprise Architect 1467
To apply a stereotype to any UML construct, using the Properties dialog, select any one of the following steps: 1. In the Stereotype field, type the stereotype(s) to apply as a comma-separated list. 2. Click on the drop-down arrow and select the required stereotype from the list. 3. Click on the [ ... ] button to use the Stereotype Selector
479
dialog.
To apply a stereotype to an element using the Properties window, select any of the following steps: 1. In the Stereotype field, type the stereotype(s) to apply as a comma-separated list. 2. Click on the drop-down arrow and select the required stereotype from the list.
479
3. Select the browse other stereotypes... option in the drop-down list to use the Stereotype Selector dialog.
479
480
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.
dialog.
The Show Element Stereotypes checkbox to show or hide all element stereotypes in the current diagram The Show Feature Stereotypes checkbox to show or hide all attribute and operation stereotypes in the current diagram The Use Stereotype Icons checkbox to display icons, instead of strings, for those stereotypes that have icons defined. The example below shows how a Class would appear having multiple stereotypes applied to it: Use Stereotype Icons disabled: displays all the applied stereotypes in a comma-separated string within gulliments.
Use Stereotype Icons enabled: displays icons for those stereotypes with icons defined. Stereotypes without icons defined are still displayed in the comma-separated string.
481
482
Stereotype process refine requirement responsibility self send stub table thread trace type utility
Base Class Classifier Abstraction Comment Comment AssociationEnd Usage Package Abstraction Classifier Abstraction Class Classifier
483
What is a Pattern?
Patterns are parameterized collaborations; that is, they are a group of collaborating Objects/Classes that can be abstracted from a general set of modeling scenarios. 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 484 as a standard UML diagram and then saved as an XML Pattern file. This XML file can then be imported 486 as a UML Resource that can be used 486 in any model.
484
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 755 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.
485
2. In the Pattern Name field, type the Pattern name. 3. In the Filename field, type a directory path and .XML filename into which to save the Pattern. 4. In the Category field, type the Category under which the Pattern should be listed in UML Patterns (required). 5. In the Version field, type the Pattern version number, and in the Notes field type any notes on the Pattern. 6. Select the actions for the elements that are contained in the Pattern by selecting the appropriate checkboxes. These actions are performed when the Pattern is used (for more detail refer to the Use a Pattern 486 topic). The available actions are: Create: Creates the Pattern element directly without modification Merge: Merges the Pattern element with an existing element, enabling the existing element to take on the role of the selected Pattern element Instance: Creates the Pattern element as an instance of an existing element Type: Creates the Pattern element types as an existing element. 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.
486
8. Click on the OK button twice to save the Pattern. Once saved you can load it Architect as a Pattern in the Resources 180 window.
486
into Enterprise
1. Open the diagram into which to add the UML Pattern. 2. Select the Resources window. 3. Expand the UML Pattern folder and find the Pattern to add. 4. Either: Right-click on the Pattern and select the Add Pattern to Diagram context menu option or Drag and drop the Pattern from the Resources window onto the diagram. (You can also view the Pattern details in read-only mode by selecting the View Pattern Details context menu option.) The Add Pattern dialog displays.
487
Use to 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. Access the individual elements contained in the Pattern. From here you can: select the action for the individual element (Create, Merge, Instance or Type, as applicable for each element) by clicking on the drop-down arrow, or modify 487 the default of the Pattern element or - for a merged element - choose the namespace, by clicking on the [ ... ] button on the right of the Default entry.
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.
488
5. Locate and select an existing element classifier. You can restrict the number of choices by selecting the elements from a specific namespace; to do this, click on the In Namespace drop-down arrow and select a namespace. For more information regarding setting element classifiers see the Using Classifiers 394 topic.
489
The Model Driven Generation (MDG) Technologies enable you to access and use resources pertaining to a specific technology in Enterprise Architect. You have various options for bringing MDG Technologies into use with Enterprise Architect: Sparx Systems already provide some in the Enterprise Architect Install directory, such as Archimate 496 , BPEL 498 , BPMN 525 , Data Flow Diagrams 529 , ICONIX 530 , Mind Mapping 533 , and SPEM 537 ; you can see which technologies are available using the MDG Technologies 491 dialog; these are available across Enterprise Architect Sparx Systems provide other MDG Technologies for download from www.sparxsystems.com/resources/ mdg_tech/, which you can add to your Enterprise Architect Install directory; these are available across Enterprise Architect You can access and activate 492 MDG Technologies remote from Enterprise Architect, in system folders or web sites; these are available across Enterprise Architect Technology Developers can create new MDG Technologies and deploy them to the project team as appropriate; For more information see SDK for Enterprise Architect 1467 You can also import Technologies 489 into the Resources window for the current model only; however, this method is no longer recommended. Having made the MDG Technologies available to Enterprise Architect, you can manage users and you can work 493 with them.
491
their availability to
You also have the facility to turn off 491 the Enterprise Architect basic UML and Extended toolbox pages and facilities, so that you can apply the Enterprise Architect facilities and features exclusively to one or more selected MDG Technologies.
490
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 493 window and in the MDG Technologies 491 dialog.
491
The MDG Technologies dialog lists the technologies held in the Enterprise Architect Install directory, in alphabetical order.
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 Enterprise Architect UML 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 132 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
492
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.
dialog displays.
2. Click on the Advanced button. The MDG Technologies - Advanced dialog displays.
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.
493
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.
494
If you set the MDG Technology to Active, its Toolbox pages override any parallel Enterprise Architect UML Toolbox pages. For example, the ICONIX Class pages would override the Enterprise Architect Class pages. You create 279 Technology-specific diagrams and populate them with elements and connectors in the same way as for standard Enterprise Architect diagrams.
495
MDG Technologies can bundle the functionality provided by UML Profiles, UML Patterns, Code Templates and Model Types. Profiles contained in MDG Technologies are applied to: Elements such as Classes and Interfaces, which are dragged directly from the Enterprise Architect UML Toolbox or the Resources window to the current diagram Attributes, which are dragged over a host element (such as a Class) to be automatically added to the element feature list Operations which, like Attributes, are dragged over a host element to add the operation Connectors such as Association, Generalization, and Dependency, which are added by selecting them in the Toolbox or Resources window, then clicking on the source element in a diagram and dragging to the target element (in the same way as adding normal connectors); the connector is added with the new stereotype and Tagged Value information Association Ends, which are added by dragging the connector end element over the end of an Association in the diagram. Patterns contained in MDG Technologies are used to: Enable reuse in a model Build in robustness.
496
Code Templates are used to: Specify the transformation from UML elements into various parts of a given programming language. Model Types are used to: Define the data types for the model.
6.4.4 Archimate
Archimate is an open-standard enterprise architecture language from The Open Group, based on the IEEE 1471 standard. It 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.
112
497
The toolbox pages provide three categories of elements - Information, Behavior and Structure - and a page of connectors that are largely based on the UML connectors. The appearance of elements can be modified with the use of Tagged Values, as suggested below: For Artifact, Process, Function, Interaction, Service, Event, Actor, Role, Collaboration, Interface, Component, Node and Device elements: iconstyle=true shows the iconic representation of the element iconstyle=false shows a rectangle with a decoration in the top corner An Interface element (if iconstyle=true) can be provided, required, symmetric or assembly, and can be rotated, by setting the Tagged Values A Function element (if iconstyle=true) can be rotated An Actor element (if iconstyle=false) can be compound Process and Function elements can be marked atomic.
Because there is a large range of Archimate elements, you should make good use of the Quick Linker 215 arrow to guide you in selecting appropriate source and target elements and relationship types to model your enterprise architecture.
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 491 dialog ( Settings | MDG Technologies).
498
6.4.5 BPEL
Note: Business Process Execution Language (BPEL) is supported in the Business and Software Engineering and Ultimate editions of Enterprise Architect. 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 flow downstream and not upstream. Mapping of an IntermediateEvent with multiple triggers to BPEL is not supported. Mapping of multi-instance parallel While loops to BPEL is not supported. Mapping of Independent sub-processes to BPEL is not supported. See Also Create a BPEL Model
499
499
Create Assignments 520 Model a BPEL Process 501 Generate BPEL 521 Create a BPEL Web Service BPEL Model Validation 523
522
500
See Also Model a BPEL Process 501 Create Assignments 520 Generate BPEL 521 Create a BPEL Web Service BPEL Model Validation 523
522
501
4. In the Name field, type a name for the BPEL Process. 5. The Query Language field defaults to XPath 1.0. The Process Type field is pre-set to Private (Enterprise Architect can generate BPEL from private processes only) and the Ad Hoc field is pre-set to False. Note: Click on the UML button if you need to define further properties of the BPEL Process, using the normal element Properties 379 dialog and Behavior 407 tab. 6. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties context menu option.
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 502 End Event 505 Intermediate Event Gateway 512 Activity 514
508
502
Pool Note:
519 .
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 499 Create Assignments 520 Generate BPEL 521 Create a BPEL Web Service BPEL Model Validation 523
522
In Enterprise Architect, four of these Trigger types can be mapped to BPEL as per the OMG BPMN 1.1 Specification: Message Timer Conditional Multiple
To create a new Start Event in your model, follow the steps below: 1. Open a BPEL diagram created under a BPEL Process
501 .
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.
503
4. In the Name field, type a name for the Event. 5. Click on the drop-down arrow in the Trigger Type field and select the required type. Depending on the trigger type you select, further details might be required. 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 10. If you select Message: 6. The Details tab changes, as below.
504
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service the list.
522
from
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 499 . 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: 10. Click on the Assignments tab.
1998-2009 Sparx Systems Pty Ltd
505
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 520 in the Supporting Elements package 499 . Note: Click on the UML button if you need to define further properties of the Start Event, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 12. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties context menu option.
In Enterprise Architect, five of these Result types can be mapped to BPEL, as per the OMG BPMN 1.1 Specification: Message Error Compensation Terminate Multiple
To create a new End Event in your model, follow the steps below: 1. Open a BPEL diagram created under a BPEL Process
501 .
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.
506
4. In the Name field, type a name for the Event. 5. Click on the drop-down arrow in the Result Type field and select the required type. Depending on the result type you select, further details might be required. 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 the list.
522
from
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.
507
7. In the Error Code field, type the required error code. 8. Go to step 10. If you select Compensation: 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: 10. Click on the Assignments tab.
508
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 520 in the Supporting Elements package 499 . Note: Click on the UML button if you need to define further properties of the End Event, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 12. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL 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
501 .
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.
509
Note: When an Intermediate Event is created as a standalone event, it must have one incoming and one outgoing SequenceFlow (except for a Link 511 Intermediate Event, which can have either incoming or outgoing SequenceFlows, but not both). 3. Click on either option. The BPEL Properties dialog displays.
4. In the Name field, type a name for the Event. 5. Click on the drop-down arrow in the Trigger Type field and select the required type. Depending on the trigger type you select, further details might be required. If you select Message: 6. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service the list.
522
from
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. In the Error Code field, type the required error code. 8. Go to step 11. If you select Compensation: 6. The Details tab changes, as below.
510
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.
511
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 499 . 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.
Resume the procedure: Note: Click on the UML button if you have to define further properties of the Intermediate Event, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 11. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties selected in the Double click on browser panel of the Options dialog) or
219
option must be
512
Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties context menu option.
In Enterprise Architect, three of these Gateway types can be mapped to BPEL, as per the OMG BPMN 1.1 Specification: Exclusive (XOR) Inclusive (OR) Parallel (AND)
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
513
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
501 .
2. Drag the Gateway element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL Properties dialog displays.
3. In the Name field, type a name for the Gateway. 4. Click on the drop-down arrow in the Gateway field and select the required type. 5. If you have selected Inclusive or Parallel, no further details are required. 6. If you have selected Exclusive, in the Exclusive Type field click on the drop-down arrow and select the sub-type - Data or Event. 7. If you have selected the sub-type Event, in the Instantiate field click on the drop-down arrow and select either True or False. Note: Click on the UML button if you need to define further properties of the Gateway, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 8. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties context menu option.
514
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
501 .
2. Drag the Activity element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL Properties dialog displays.
3. In the Name field, type a name for the Activity. 4. In the Type field click on the drop-down arrow and select the Sub-Process option. 5. In the Task Type field click on the drop-down arrow and select the Sub Process type - Embedded or References.
1998-2009 Sparx Systems Pty Ltd
515
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 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 9. Click on the OK button to close the dialog. To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL 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
501 .
2. Drag the Activity element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL Properties dialog displays.
516
3. In the Name field, type a name for the Activity. 4. In the Type field click on the drop-down arrow and select the Task option. 5. In the Task Type field click on the drop-down arrow and select the Task type. Depending on the Task type you select, further details might be required. If you select None: 6. No further details are required. Go to step 11 If you select Reference: 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 Tasks in the process. 8. Go to step 11. If you select Send: 6. The Details tab changes, as below.
517
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service the list.
522
from
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 the list.
522
from
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 502 , 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 the list.
522
from
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.
518
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 520 in the Supporting Elements package 499 . 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.
519
Note: Click on the UML button if you need to define further properties of the Activity, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 19. Click on the OK button to close the dialog. To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL 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.
3. In the Name field, type a name for the Pool element. Note: Click on the UML button if you need to define further properties of the Activity, using the normal element Properties 379 dialog. Alternatively, right-click on the element and select the Properties context menu option. 4. Click on the OK button to close the dialog.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties
520
4. In the Name field, type a name for the Assignment. 5. In the Assign Time field, click on the drop-down arrow and select either Start or End. This determines whether the assignment occurs at the start or end of an Activity. In the Copy From panel: 6. In the Type field, click on the drop-down arrow and select either Literal, Expression or Message. 7. If you select Literal, the Literal field is enabled and the Message and Part fields are disabled. Type a value in the Literal field. 8. If you select Expression or Message, the Literal field is disabled and the Message and Part fields are enabled. 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 499 package. Note: Messages are created when you create a Web Service
522 .
10. (Optional) To the right of the Part field, click on the [ ... ] button and select a Message Property.
1998-2009 Sparx Systems Pty Ltd
521
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.
To return to the BPEL Properties dialog for subsequent editing: Double-click on the element in the diagram or Project Browser (the Shows Properties 219 option must be selected in the Double click on browser panel of the Options dialog) or Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties context menu option. See Also Model a BPEL Process 501 Generate BPEL 521 BPEL Model Validation 523
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.
3. Complete the Namespace and Prefix fields as required. See Also BPEL 498
522
Create Assignments 520 Create a BPEL Model 499 Model a BPEL Process 501 Create a BPEL Web Service BPEL Model Validation 523
522
2. You can create a Web Service: From scratch - select the Create New option in the Web Service field, or By importing an existing WSDL into a (for example) SupportingElements package and then selecting the Create from existing WSDL option in the Web Service field. Once you enter all the required values, the Web Service is created under the SupportingElements package.
523
See Also BPEL 498 Create a BPEL Model 499 Create Assignments 520 Model a BPEL Process 501 Generate BPEL 521 BPEL Model Validation 523
524
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 498 Create a BPEL Model 499 Create Assignments 520 Model a BPEL Process 501 Generate BPEL 521 Create a BPEL Web Service
522
525
6.4.6 BPMN
The following text is derived from the Business Process Modeling Notation entry in the online Wikipedia. The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is now being maintained by the Object Management Group since the two organizations merged in 2005. The primary goal of BPMN is to provide a standard notation that is readily understandable by all business stakeholders. These business stakeholders include the business analysts who create and refine the processes, the technical developers responsible for implementing the processes, and the business managers who monitor and manage the processes. Consequently BPMN is intended to serve as common language to bridge the communication gap that frequently occurs between business process design and implementation. ... The adoption of BPMN standard notation will help unify the expression of basic business process concepts (e.g. public and private processes, choreographies) as well as advanced modeling concepts (e.g. exception handling, transaction compensation). BPMN ... supports only the concepts of modeling that are applicable to business processes ... other types of modeling done by organizations for non-business purposes [are] out of scope for BPMN. For example, ... modeling ... the following is not a part of BPMN: 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 release 7.5 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.
112
Menu
112
215 .
topic.
526
527
Page Core
Item Business Process BPEL Process Activity Start Event Intermediate Event End Event Gateway Pool Lane Data Object Group Text Annotation
Use to Extend a composite Activity that defines a business process. Define the behavior of an executable or abstract business process. Define an activity within a business process Define the initiating event in a process. Define an intermediate event in a process. Define the terminating event in a process. Define a decision point in a business process. If a condition is true, then processing continues one way; if not, then another. Extend a Partition element to logically organize an Activity. Extend a Partition element to subdivide a Pool. Extend an Artifact element to define a physical piece of information used or produced by a system. Extend a Boundary element to group other elements. Create a comment. Extend a Control Flow relationship to define the flow of activity. Extend a Control Flow relationship to define the flow of communications in the process. Associate information and artifacts with flow objects.
528
Page
Item Condition Message Participant Signal Rule Transaction Web Service Property
Use to
Define the properties (Tagged Values) of the Core BPMN 1.1 elements such as Activities, Events and Gates.
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 491 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 release 7.5, 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
1998-2009 Sparx Systems Pty Ltd
529
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.
112
Menu
112
Process is a process or activity in which data is used or generated External represents an external source, user or depository of the data Data Store represents an internal physical or electronic repository of data, into and out of which data is stored and retrieved Data Flow (connector) represents how data flows through the system, in physical or electronic form Gate represents the termination point of incoming and outgoing messages on a lower level diagram (that is, messages to and from processes depicted elsewhere). When dragged onto a Data Flow diagram, the elements and relationship have the following appearances:
530
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.
6.4.8 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/.
1998-2009 Sparx Systems Pty Ltd
531
112
Menu
112
215 .
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
532
specific to ICONIX.
532
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) Project Browser, Tasks Pane, Resources and Model Views windows nested in the top left of the screen, and Notes and Properties windows nested on the bottom left of the screen.
533
To apply this layout, select the View | Visual Layouts | Iconix menu 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 491 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 | Visual Layouts menu option.
534
For further information on the concepts of Mind Mapping, refer to the Wikipedia item and its linked sources.
112
Menu
112
and Quick
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
1998-2009 Sparx Systems Pty Ltd
535
on the diagram.
6.4.10 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.odt).
215 .
536
537
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 491 dialog (Settings | MDG Technologies).
6.4.11 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.
538
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 491 dialog (Settings | MDG Technologies).
539
540
541
Use to Create a predefined special Activity representing a significant period in a project. 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. Represent a special Activity that describes a structure for particular types of development projects, or parts of them. Represent a special Process describing a complete and integrated approach for implementing a specific project type. Represent a special Process to describe a reusable cluster of Activities in a general process area that provides a consistent development approach to common problems. Represent a special Process that is prepared for instantiation by a project planning tool. Represent a Work Product Definition that provides a description and definition for tangible work product types. Represent a Work Product Definition that provides a description and definition for packaging other Work Products, and that can be delivered to an internal or external party. Represent a Work Product Definition that provides a description and definition for non-tangible work products. Categorize content based on the users criteria. Identify reference items such as Guidelines, Templates, Checklists, Tool Mentors, Estimates, Supporting Materials, Reports and Concepts. Define a standard measurement for instances of Method Content elements. Define a set of related skills, competencies, and responsibilities. Represent parts or subunits of a Task Definition. Describe an assignable unit of work. Every Task Definition is assigned to specific Role Definitions. A Task is associated with input and output Work Products. Describe the tools that are recommended or necessary for completing a specific Task. Define any forms of document, report or outcome that are consumed, produced or modified by Tasks. Create a physical container to organize the Method Content elements. Create an overall physical container for all SPEM 2.0 elements. 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. Create a physical container that contains different kinds of
Tool Definition Work Product Definition Package Method Content Package Method Library Method Plugin
Process Package
542
Page
Item
Process Component Process Activity Composite Role Milestone Process Role Use Task Use Team Profile Work Product Use
Create a special Process Package that provides the mechanism of encapsulation. Define basic units of work within a Process as well as the Process itself. Represent an aggregation of Role Definition references for an Activity. Represent any significant events in a development project. Create a special Activity that describes a structure for particular types of development project. Represent a Role Definition in the context of one specific Activity. Represent a Task Definition in the context of one specific Activity. Define a nested hierarchy of teams and team members. 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.
543
6.4.12 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.
544
Each of the nine SysML diagram types, accessed through the New Diagram 279 dialog A collection of SysML pages in the Enterprise Architect Toolbox that contain each of the supported SysML elements and relationships SysML element and relationship entries in the UML Toolbox Shortcut 112 Menu 112 and Quick Linker 215 . Simulation of SysML Parametric diagrams, which supports engineering analysis of critical system parameters including the evaluation of key metrics such as performance, reliability and other physical characteristics.
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 contains the constructs needed to build SysML models, package structures and views Block Definition contains the construct needed to design SysML blocks, constraint blocks, data and value types Block Internal contains the constructs needed to design SysML block compositions within Internal Block Diagrams Parametrics contains the constructs needed to construct SysML Parametric Diagrams using constraint blocks Activity contains the constructs needed to construct SysML Activity models Interaction contains the constructs needed to construct SysML interactions and Sequence diagrams State Machine contains the constructs needed to build SysML State Machines Use Case contains the constructs needed to build SysML Use Case models Requirements 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 491 dialog (Settings | MDG Technologies).
545
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.
546
4. Right-click within a Parametric Diagram and select the SysML | Simulate Diagram... context menu option. 5. Depending on your configuration selections 547 , the simulation's results are either written to a comma-separated CSV file or graphed in a 2-dimensional plot.
547
547
548
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 file, select the checkbox and type or browse ([...]) for the file name. 6. Click on the OK button to execute the simulation.
1998-2009 Sparx Systems Pty Ltd
549
544
550
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, online pages and warehouse inventory. The output of significance to the business is a customer order.
551
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 Process Modeling Notation 551 Inputs, Resources and Information Events 553 Outputs 553 Goals 554 A Complete Business Process 554
552
See Also Business Modeling and Business Interaction Diagrams Web Stereotypes 1413
1314
552
The business process: Can affect more than one organizational unit Can have a horizontal organizational impact Creates value of some kind for the customer; customers can be internal or external. A business process is a collection of activities designed to produce a specific output for a particular customer or market. It implies a strong emphasis on how the work is done within an organization, in contrast to a product's focus on what. A process is thus a specific ordering of work activities across time and place, with a beginning, an end, and clearly defined inputs and outputs: a structure for action. The notation used to depict a business process is illustrated below.
The process notation 1408 implies a flow of activities from left to right. Typically an Event 553 element is placed to the left of the process and the output to the right. To specifically notate the internal activities, UML Activity elements 1324 can be placed inside the process element.
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).
1998-2009 Sparx Systems Pty Ltd
553
6.5.3 Events
An event 1402 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).
6.5.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).
554
6.5.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.
This process completes the modeling of Business Rules. The Fact model can then be transformed into the
1998-2009 Sparx Systems Pty Ltd
555
appropriate code 565 using Enterprise Architect's general code generation methods. This generates the technology-specific business rules; that is, the code to execute the business rules.
The Business Rules Model diagram, shown below, encapsulates the components of the Business Rules model.
556
557
In the example Fact 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 557 as a behavior for this Class.
558
The following illustration is of a possible Rule Flow diagram for the car rental example.
559
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 560 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.
560
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
1998-2009 Sparx Systems Pty Ltd
561
already) onto the diagram. You type the rule as the element name here, then define the parameters of the rules using the Rule Composer 562 . 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. 5. Repeat steps 2 - 4 for the next Rule Task element. The resulting Rule Model resembles the following diagram:
After you have modeled rules for all the Rule Task elements in the Rule Flow diagram, the Fact model is ready for code transformation 565 . The code templates for generating technology-specific rule code work hand-in-hand with the EASL code templates 1570 to generate the code for the Rule Flow diagram.
562
The Rule Composer consists of: a Rule table a Decision Table and a Computation Rule Table.
Rule Table
The Rule table lists the rules associated with the selected Rule Task. You add a rule to the table by dragging an existing Business Rule element from the Project Browser onto an empty row in the Rule table. You cannot
1998-2009 Sparx Systems Pty Ltd
563
create new rules within the table. To define a business rule associated with the selected Rule Task, follow the steps below: 1. For the first rule, select the text within the Business Rule element and drag it onto the empty row. 2. For a subsequent rule, click on the No column and select the Add Row context menu option. An empty row is added to the Rule table.
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: Condition to model condition variables Action to model action variables Rule Bind to link the rule in the rule table.
Condition Section
To model condition variables, follow the steps below: 1. The Fact Model defines the business terms (such as Customer) and their associated attributes. From the appropriate Class element in the Project Browser, drag and drop the required condition attribute (such as age) onto the Condition Variable column. Note: If the dropped condition variable is of type enum, the Allowable Values fields are automatically set with the enum literals. The procedure then ends here. 2. Define a range of accepted values for the attribute. 3. Right-click on the Allowable Values column. The Edit Allowable Values dialog displays. Type the values in the text box; for example, age could have the values: <18 >18 and <50 >50. 4. Click on the Save button to save the values and close the dialog. A new constraint AllowableValues is created for the attribute.
564
Notes: You can check this constraint by opening the Properties dialog for the attribute and selecting the Constraints tab. If the condition variable references an enumeration, the enum literals are not editable in the Edit Allowable Values dialog. To add another condition variable, 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 condition variable 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.
Action Section
In the Action Variable section, when a specific value of a condition variable calls an operation (such as post error) or decision attribute (such as Eligible - Yes/No), you assign the operation or attribute as an action. To model action variables, follow the steps below: 1. From a business term Class element in the Project Browser, drag and drop the required attribute or operation onto the Action Variable field. 2. For an attribute, right click on the Allowable Values field and, in the Edit Allowable Values dialog, type the range of values in the text box (such as Yes, No; or Accept, Reject). Select the appropriate response in the Value column fields. Note: If the dropped action variable is of type enum, the Allowable Values fields are automatically set with the enum literals. 3. For an operation, a checkbox displays in each of the Value column fields. 4. Click on the Save button in the Rule Composer toolbar to save the values. To add another action variable, right-click on the No column and select the Add Row context menu option. An empty row is added to the table. To remove an action variable 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.
565
The table has the following columns: Rule Variable Expression Rule Rule Dependency.
To define a computational rule, follow the steps below: 1. From the Project Browser, drag and drop the appropriate attribute from a Class in the Fact model into the Variable field. 2. In the Expression field, type the expression to be evaluated. 3. In the Rule field, type the rule number from the Rule table of the rule being modeled, to link the table data to the rule. 4. If the rule depends on another rule being satisfied first, type the number of that rule in the Rule Dependency field. 5. Click on the Save button in the Rule Composer toolbar to save the computational rule. If the computation rule is also a conditional rule, add the condition variable in the Decision table and bind the appropriate rule in the Rule Bind section.
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.
/////////////////////////////////////////////////////////// // RentalSystem.cs // Implementation of the Class RentalSystem // Generated by Enterprise Architect // Created on: 08-May-2009 2:39:23 PM /////////////////////////////////////////////////////////// public class RentalSystem {
566
public Customer m_Customer; public Car m_Car; public Rent m_Rent; public RentalSystem(){ } ~RentalSystem(){ } public virtual void Dispose(){ } /* Begin - EA generated code for Activities and Interactions */ public bool ProcessApplication(Rent m_rent,Application m_application) { // behavior is an Activity /*CAR MUST NOT BE RENTED TO CUSTOMERS WITHOUT A VALID LICENCE NUMBER*/ if( m_Customer.ValidLicenceNumber == "FALSE" ) { m_application.Status = "Reject"; m_Customer.Eligibile = false; } /*CAR MUST NOT BE RENTED TO CUSTOMERS OF AGE LESS THAN 18*/ if( m_Customer.age < 18 ) { m_application.Status = "Reject"; m_Customer.Eligibile = false; } /*CAR MUST NOT BE RENTED TO CUSTOMERS WITH BAD HISTORY LEVEL 3*/ if( m_Customer.BadHistoryLevel == 3 ) { m_application.Status = "Reject"; m_Customer.Eligibile = false; } if (Customer.Eligible == true) { /*RENT FOR SMALL CARS IS 80 AUD PER DAY*/ if( m_Car.type == Small ) { m_rent.RentPerDay = 80; } /*RENT FOR AWD CARS IS 100 AUD PER DAY*/ if( m_Car.type == AWD ) { m_rent.RentPerDay = 100; } /*RENT FOR LUXURY CARS IS 150 AUD PER DAY*/ if( m_Car.type == Luxury ) { m_rent.RentPerDay = 150; } /*RENT PAYABLE IS CALCULATED AS THE PRODUCT OF RENTPERDAY AND RENTALPERIOD IN DAYS*/ m_rent.RentPayable = m_rent.RentPerDay * m_rent.No_of_rent_days; if (CustomerBadHistoryLevel > 0) { /*PENALTY OF 20 % OF RENT MUST BE APPLIED FOR CUSTOMERS WITH BAD HISTORY LEVEL 2*/ if( m_Customer.BadHistoryLevel == 2 ) { m_rent.PenaltyFee = m_rent.RentPayable * 0.2; } /*PENALTY OF 10 % OF RENT MUST BE APPLIED FOR CUSTOMERS WITH BAD HISTORY LEVEL 1*/ if( m_Customer.BadHistoryLevel == 1 ) { m_rent.PenaltyFee = m_rent.RentPayable * 0.1; } 1998-2009 Sparx Systems Pty Ltd
567
} else { } /*TOTAL AMOUNT PAYABLE IS CALCULATED AS THE SUM OF RENT PAYABLE AND PENALTY IF ANY.*/ m_rent.TotalAmountPayable = m_rent.RentPerDay + m_rent.PenaltyFee; } else { } return m_application.Status; } /* End - EA generated code for Activities and Interactions */ }//end RentalSystem
Part
VII
569
Requirements Management |
7 Requirements Management
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.
These can cause issues with: Traceability and Integration with change and configuration management systems. Enterprise Architect can reduce or eliminate these problems in Requirements Management; it is one of the few UML tools that integrate Requirements Management with other software development disciplines in the core product, by defining requirements within the model. Within Enterprise Architect, you can: Create 576 and view 581 requirements as entities and properties directly in the model Collate the requirements in an external CSV file and then import 580 them into your model Detail use cases 572 and scenarios directly in the model Enter standard attributes 576 (properties) for each requirement, such as difficulty, status and type, and define your own attributes 578 (properties) Trace 582 requirements to Use Cases, business rules, test cases and analysis artifacts (using, for example,
Requirements Management |
570
the Relationship Matrix 457 ) Trace and view the impact of changes 582 on requirements (through, for example, the Hierarchy window ) and review the changes 582 themselves Create customer-quality MS Word and HTML reports 583 on requirements. 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
194
571
Internal requirement 573 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.
. The Requirement
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 Show Level Numbering 64 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
572
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 Element section {Element.LevelNumber}.
1163
Use Cases
Requirements are implemented (realized) by model elements such as Use Cases, Classes, Interfaces and Components. There are many ways to trace 786 either the Requirement for the feature or service modeled by the elements, or the elements that develop the requirement, most visibly in Traceability 791 diagrams that depict the Requirements and the model elements connected 579 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 1373 is the key to defining and visualizing how that condition is met. A Use Case diagram 1250 depicts the logical grouping of actions, processes and components to achieve a required result, and through the use of Actor 1328 elements also defines the user and/or system roles participating in the process. Each Use Case (as a composite element 1400 ) 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 1280 , Communication 1289 , Activity 1248 , State Machine 1252 and Business Rule Flow 557 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.
573
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 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 574 an internal responsibility into an external requirement. You can also create internal responsibilities for an element using the Rules & Scenarios 194 window. A responsibility created in the window displays in the element Properties dialog, and vice versa.
574
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 Require tab. 3. Locate and highlight the requirement. 4. Click on the Move External button. The Browse Project dialog displays.
5. Select the package to place the new requirement in. 6. Click on the OK button. Enterprise Architect creates a new Requirement element in the target package and automatically generates a Realization connector from the element to the Requirement.
575
Notice the requirement is now marked external and the dialog fields grayed out. To edit its details click on the requirement. Also notice that a Requirement element has been created in the target package.
576 ,
double-
576
2. Drag the Requirement element onto the current diagram. 3. Enter the Name and other details for the requirement. Enterprise Architect creates a Requirement element in the current diagram and in the diagram's parent package.
577
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 577 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 578 topic.
578
You can change these colors, and add or remove status types, using the Status Types
804
dialog.
579
Connect On Diagram
Relationships can be created on a diagram by clicking on the appropriate connector icon from the Requirement 127 and Common 114 pages of the UML 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.
580
Use the Relationship Matrix to create relationships building up complex relationships and hierarchies.
461
In the Default Types field has the value requirement,package to import requirements and a package structure to contain them Has the Preserve Hierarchy checkbox selected Identifies the data fields on the spreadsheet that are to be translated into Enterprise Architect, in the order in which they are plotted across the spreadsheet Is to operate on a spreadsheet containing the CSV_KEY and CSV_PARENT_KEY fields 694 (which, if not generated by a CSV export from Enterprise Architect, you have added and populated yourself). This enables you to import the individual and grouped requirements from the spreadsheet into Enterprise Architect, and to reconstruct the hierarchies of Requirements in the target package in the Project Browser.
581
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 581 Trace Use of Requirements 582 Manage Requirement Changes Report on Requirements 583
582
582
Element List 143 - lists the elements in a diagram or package, filtered and sorted according to the settings you define; shows all or selected default properties of each element. (Requirements) 1310 Diagram 142 - shows the arrangement of a group of Requirements, and can show whether the elements are in the same package or different packages. Model Search 156 - enables you to locate Requirements in general in the model, or specific Requirement elements, according to the search criteria you use. Model Views 148 - enables you to maintain links to commonly-used elements, and to rapidly show developments and changes in (Requirement) package contents through either reports or slide shows of selected diagrams. Properties 178 - shows every standard property of a selected element, whether updated by the user or maintained automatically by the system. Tagged Values 196 - shows extended properties of a selected Requirement element. Element Browser 191 - shows every added-on property, such as attributes, operations, Tagged Values and constraints. Notes 195 - displays the detailed description of a requirement, and any other additional information recorded on the requirement.
583
Model Views
Model Views 148 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 777 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 766 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 769 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.
Part
VIII
585
626
Information on how to get started with projects can be found in the Quick Start - Create a Project
29
topic.
586
Project Sharing
Note: This functionality is available in the Corporate, Professional, Business and Software Engineering, Systems Engineering and Ultimate editions. The Desktop edition is intended for single users, so does not support shared files. Enterprise Architect enables project sharing 673 for efficient management of team development. You can create a replica of your project, make changes to it, then merge your changes back into the master project.
Coordinate sharing of packages between users, with either read-only access or update access Save and retrieve a history of changes to packages. To use version control in Enterprise Architect, you require a third-party source-code control application such as Subversion, CVS, or any other version control product that complies with the Microsoft Common Source Code Control standard.
User Security
Note: This feature is available in the Corporate, Business and Software Engineering, System Engineering and Ultimate editions. UML Model User Security 746 in Enterprise Architect provides a means of limiting access to update functions in a project. Elements can be locked per user or per group, and a password defined for login. Enterprise Architect offers two security policies: Standard, where each element is considered unlocked until specifically locked Rigorous, where each element is assumed to be locked until specifically unlocked.
Traceability
Traceability 786 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?'
587
Add-Ins
Add-Ins are ActiveX COM objects that expose public Dispatch methods. The Enterprise Architect Add-In model 1583 builds on the features provided by the Automation Interface to enable you to extend the Enterprise Architect user interface and add functionality.
Replication
Note: This functionality is available in the Corporate, Professional, Business and Software Engineering, Systems Engineering and Ultimate editions. The Desktop edition is intended for single users, so does not support replication. In addition to sharing projects in real time over a network, Enterprise Architect also enables projects to be shared using replication 675 . Replication 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. Modelers merge their changes into a Design Master only as required. It is recommended that a backup is carried out prior to replication. Replication requires the use of .EAP based repositories, and cannot be performed on repositories stored on a DBMS server. See Also Upgrading Models 650 Project Data Integrity 652 Setting Up a Database Repository Model Maintenance 660 Manage Views 661 XMI Import and Export 679 Team Development 673 Spell Checking 251 Reference Data 795 The WAN Optimizer 648
593
588
An Enterprise Architect project 589 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 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 44 . From here, you can create a new project 591 , open a project 590 and (Corporate, Business and Software Engineering, System Engineering and Ultimate editions) connect to a data repository 629 .
592
You can also add Model Packages to a project from the Project Browser by: Right-clicking on an existing model and selecting the New Model or Add a New Model using Wizard context menu options Right-clicking on a package and selecting the Add | Add a New Model using Wizard context menu option Clicking on an existing model, pressing [Insert] and selecting the New Model or Add a New Model using Wizard context menu options Clicking on a package, pressing [Insert] and selecting the Add a New Model using Wizard context menu option.
589
SQL Server 620 MySQL 618 Oracle 9i, 10g or 11g 623 PostgreSQL 623 MSDE 628 Adaptive Server Anywhere Progress OpenEdge 644
626
To create a new data repository, you must first create a new database with the DBMS management software, then run supplied scripts to create the logical structure. You should then use Enterprise Architect data transfer functions to move a project from a .EAP or DBMS model into the new project.
The project Condor contains two models: Development Model and Requirements Model. Requirements Model contains:
590
Requirements View and Use Case Model Package. Each View or Model Package contains packages. Use Case Model Package contains: Actors and Primary Use Cases. It also contains the diagram Use Case Diagram, which could be an overview of the package structure or function. Each package itself contains one or more diagrams, one or more packages, and several elements. The Primary Use Cases package contains the: Primary UCDiagram Customer Setup package Use Case 1 element Use Case 2 element.
Each subordinate package also contains diagrams, elements and (if necessary) further packages. The elements are related by connectors created in the diagrams, and each element and connector has properties, attributes, operations and extensions defined in the respective Properties dialogs.
591
Registered version: C:\Program Files\Sparx Systems\EA Trial version: C:\Program Files\Sparx Systems\EA Trial Lite version: C:\Program Files\Sparx Systems\EA Lite
Postgre SQL
638 ,
Registered version: C:\Program Files\Sparx Systems\EA Trial version: C:\Program Files\Sparx Systems\EA Trial Lite version: C:\Program Files\Sparx Systems\EA Lite
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 make development and use of the project consistent. See the following topics: The Settings Menu 105 Defaults and User Settings
218
592
Use to Select the category containing the types of Model Package to create. (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
46
, select <default>.
Select all of the models. Clear all models selected. Create the Model Packages for your project. Abort the creation of model packages. Display this Help topic.
If you are a Technology Developer, you can also create and distribute custom templates 1493 as part of your own MDG Technology. 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 (see SDK for Enterprise Architect).
593
626
You upsize the Enterprise Architect models (either existing or template) to use your selected DBMS. The process of upsizing a model is straightforward and comprises the following steps: 1. Install the DBMS software and create a database. Ensure that the collation is set to the alphabet you use, such as Latin or Cyrillic. 2. Run a script supplied by Sparx Systems (www.sparxsystems.com/registered/reg_ea_corp_ed.html) to create the required tables. 3. Open Enterprise Architect and use the Project Data Transfer 655 function (select the Tools | Data Management | Project Transfer menu option) to move a model from a .EAP file to the DBMS repository. 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.
611
Create a Repository
To find out how to download the scripts and create the data repository tables, go to: Create a MySQL Data Repository 618 Create an Access 2007 Repository 617 Create a SQL Server Data Repository 620 Create an Oracle Data Repository 623 Create a PostgreSQL Data Repository 623 Create an Adaptive Server Anywhere Data Repository
626
594
Create an MSDE Server Data Repository 628 Create a Progress OpenEdge Data Repository
628
Connect to a Repository
Once the repository is created, you can connect to it. To find out how, go to: Connect to a MySQL Data Repository 629 Connect to a SQL Server Data Repository 632 Connect to an Oracle Data Repository 635 Connect to a PostgreSQL Data Repository 638 Connect to an Adaptive Server Anywhere Data Repository Connect to an MSDE Server Data Repository 644 Connect to a Progress OpenEdge Data Repository. 644
641
595
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to Access 2007. 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.
596
2. Create a new database for the Enterprise Architect repository using Sybase Central. 3. Create a suitable ODBC Data Source to point to your new database. Note: See Set up an Adaptive Server Anywhere ODBC Driver
611 .
You now have an empty database, and can transfer an existing model into the server.
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to ASA. 5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog displays. 6. Select Microsoft OLE DB Provider for ODBC Drivers from the list, then click on the Next button. 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.
597
Note: See Connect to an Adaptive Server Anywhere Data Repository 8. Click on the OK button. 9. If required, select the Logfile checkbox and enter a path 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 Adaptive Server Anywhere and can now open it from Enterprise Architect.
641
598
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to OpenEdge. 5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog displays. 6. Select Microsoft OLE DB Provider for ODBC Drivers from the list, then click on the Next button. 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 OpenEdge Data Repository 8. Click on the OK button. 9. If required, select the Logfile checkbox and enter 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 OpenEdge and can now open it from Enterprise Architect.
644
599
You now have an empty database and can transfer an existing model into the server.
600
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type or select .EAP file to upsize to PostgreSQL. 5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog displays. 6. Select Microsoft OLE DB Provider for ODBC Drivers from the list, then click on the Next button. 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 PostgreSQL Data Repository 8. Click on the OK button. 9. If required, select the Logfile checkbox and type a path and filename for the data transfer log file. 10. Click on the Transfer button to begin the data transfer process. 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
638
When the process is complete, you have upsized your model to PostgreSQL and can now open it from Enterprise Architect.
601
Warning: Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
You now have an empty database and can transfer an existing model into the server.
602
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to Oracle. 5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog displays. 6. Select Oracle Provider for OLE DB from the list, then click on the Next button. 7. On the Connection page of the Data Link Properties dialog, enter the Oracle service name in the Data Source field, and the user name and password as required. Note: See Connect to an Oracle Data Repository 8. Click on the OK button. 9. If required, on the Project Transfer dialog, select the Logfile checkbox and type a path and file name for the data transfer log file. 10. Click on the Transfer button to begin the data transfer process. Once the process is complete, you have upsized your model to Oracle and can now open it from Enterprise Architect.
635
You now have an empty database, and can transfer an existing model into the server.
603
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to SQL Server. 5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog displays. 6. Select Microsoft OLE DB Provider for SQL Server from the list, then click on the Next button. 7. On the Data Source Details page of the Connection dialog, type in the server name, database name and security details as required. Note: See Connect to a SQL Server Data Repository 8. Click on the OK button. 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 SQL Server and can now open it from Enterprise Architect.
632
604
and ensure
You now have an empty database, and can transfer an existing model into the server as described below.
605
3. In the Transfer Type panel, select .EAP to DBMS. 4. In the Source Project field, type the name of the .EAP file to upsize to MySQL. 5. At the right of the Target Project field, click on the [...] (Browse) button. The Datalink Properties dialog displays. 6. Select Microsoft OLE DB Provider for ODBC Drivers from the list, then click on the Next button. 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 MySQL Data Repository 8. Click on the OK button. 9. If required, select the Logfile checkbox and type 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 MySQL and can now open it from Enterprise Architect.
629
611
606
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
607
3. Select MySQL ODBC 5.1 Driver from the list. 4. Click on the Finish button. The MySQL Connector/ODBC dialog displays. 5. Enter the following configuration details: A data source name for the connection A description (optional) The host address of the DBMS server User name and password The database name on the selected server. See the example below:
608
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.
609
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
3. Select PostgreSQL from the list. 4. Click on the Finish button. 5. Enter the following configuration details: A name for the connection The actual name of the database. Description (optional) The host address of the PostgreSQL server. User name and password.
6. Click on the Datasource button and set the options on Page 1 and Page 2 as shown on the examples below:
610
Note: On Page 2, For PostgreSQL version 8+ select the Disallow Premature checkbox and, in the Protocol panel, select the 7.4+ radio button. 7. Click on the OK button to complete the configuration.
611
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
612
3. Select Adaptive Server Anywhere or SQL Anywhere from the list. 4. Click on the Finish button. 5. Enter the following configuration details: A name for the connection on the ODBC tab.
The username and password on the Login tab (dba, sql are the defaults when ASA is installed).
613
The server name and the path to the database, on the Database tab.
614
The network protocol on the Network tab (if the database is on a network location).
615
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.
616
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
3. Select the DataDirect/OpenEdge SQL driver from the list. 4. Click on the Finish button. The DSN Configuration dialog displays. 5. Enter the following configuration details: The Data Source Name The Description (optional) The Host Name and Port Number of the DBMS server The Database Name on the selected server The User ID. See the example below:
1998-2009 Sparx Systems Pty Ltd
617
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.
626
618
2. Run MySQL Query Browser, and open and execute the MySQL repository script.
619
3. Below is an example showing the tables created in the MySQL repository after running the script in MySQL Query Browser.
620
621
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.
2. Right-click and choose the New Database context menu option. 3. Enter a suitable name for the database. Set any file options as required.
Note: Ensure that the database collation is case-insensitive. 4. Click on the database to select it, then select the Tools | SQL Query Analyzer menu option.
622
5. In the Query window, use the File Find 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 Run button; SQL Server executes the script, which creates the base model for an Enterprise Architect project.
623
624
To get started with pgAdminIII, follow the steps below: 1. Create a new database..
625
2. Below is an example showing the tables created in the PostgreSQL repository after running the script in pgAdminIII.
626
627
The following example shows the tables created in the ASA repository after running the script in EMS ASA Manager.
628
629
that script is 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_openedge_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/.
5. Open Admin->Security->Edit User List. 6. Close Data Administration. 7. Open SQL Explorer Tool, connect as 'sysprogress'. 8. Add user:
create user 'user','password'; commit;
9. Grant privileges:
grant dba, resource to <user>; commit;
641
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.
630
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list. 4. Click on the Next button. The Connection tab displays.
631
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 606 the driver title is MySQL-EABASE. 6. If required, type in a User name and Password. 7. If required, type in an initial catalog. 8. Click on the Test Connection button to confirm that the details are correct. 9. If the test succeeds, click on the OK button. 10. If the test does not succeed, revise your settings. 11. After you have clicked on the OK button, the Connection Name & Type dialog displays.
632
12. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the Open Project dialog 590 . 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 648 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.
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.
633
3. Select Microsoft OLE DB Provider for SQL Server from the list. 4. Click on the Next>> button. The Connection tab displays.
634
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.
635
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 590 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 648 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 [ ... ] (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.
636
3. Select Oracle Provider for OLE DB from the list. Note: Do not select Microsoft OLE DB Provider for Oracle; Enterprise Architect might not work as expected. 4. Click on the Next button. The Connection tab displays.
637
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.
638
10. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the Open Project dialog 590 . 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 648 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.
639
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list. 4. Click on the Next button. The Connection tab displays.
640
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.
641
10. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the Open Project dialog 590 . 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 648 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.
642
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list. 4. Click on the Next button. The Connection tab displays.
643
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.
644
10. Give the connection a suitable name so you can recognize it in the Recent Projects panel on the Open Project dialog 590 . 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 648 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.
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.
1998-2009 Sparx Systems Pty Ltd
645
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list. 4. Click on the Next button. The Connection tab displays.
646
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 606 the driver title is openedge_users. 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.
647
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 590 . 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 648 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.
648
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:
1998-2009 Sparx Systems Pty Ltd
649
WAN Optimizer Components Installing and Starting the WAN Optimizer Service Configuring the Service Troubleshooting.
To create a new Enterprise Architect project, you must select a project template to form the base model for the new project. When you install Enterprise Architect a default model is installed called EABase.eap. 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. To select the base model for your project 591 , click on the Browse button after the Model Project field. The field defaults to EABase.eap; however you can select any existing model file (see the Design a Custom Template 591 topic). 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 copy any Enterprise Architect project using Windows Explorer, and open the copied project as a new project.
650
The structure of Enterprise Architect project files is occasionally changed to support more features. When this happens, existing project files must be upgraded to the new format to ensure correct operation and to take advantage of all the new features. When you try to load a project that was created in an early release of Enterprise Architect (for example, an archived project) using a recent release of Enterprise Architect, the system determines whether the project should be upgraded and, if the upgrade is necessary, displays the Upgrade Wizard 650 , which takes you through the upgrade process. Upgrading is a simple and quick process that brings your project to the current level to support all the latest Enterprise Architect features.
The Upgrade Wizard: Advises you of the necessity to upgrade Advises you to back up the current project; it is essential to back up before any changes are made Checks which upgrade path is required Guides you through the steps to perform the upgrade Opens the newly converted project.
651
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 651 is required. Once upgraded, the project cannot be opened with the version of Enterprise Architect in which it was created.
652
If you have a failed XMI import, network crash or other unforeseen event that could disrupt the integrity of information in the model, it is recommended to run the Project Integrity Check function 652 . This examines all database records and ensures there are no 'orphaned' records or inaccurate or unset identifiers. You can run the integrity checker first in report mode to discover if anything should be corrected, and then run it again in repair mode. When Enterprise Architect checks the model, it attempts to recover lost packages and elements, and generates a new package at the model root level called _recovered_. Check through any elements that are found and, if required, drag them into the model proper. If they are not required, delete them. 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
654
653
2. Select the checks to run; the basic checks available are: Package Structure Object Structure Object Features GUIDs Cross References Connectors UML 2.0 Migration 3. Select either: the Report Only option to just view a report on the state of your model, or the Recover/Clean option to attempt to recover and clean your project. Warning: If you intend to select the Recover/Clean option, you should back up your project file first. Click on the Go button to run the check.
654
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.
655
The Corporate, Business and Software Engineering, System Engineering and Ultimate editions of Enterprise Architect support SQL Server 620 , MySQL 618 and Oracle 9i, 10g and 11g 623 data repositories. At some point, it might become necessary to move a complete model from one repository to another, row by row, table by table. The project data transfer function enables you to perform the following tasks: Upload an existing .EAP file to SQL Server or MySQL Download a repository in MySQL or SQL Server to a .EAP file 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) - or back the other way. See the Perform a Project Data Transfer Note: You cannot move a model from a source .EAP file of a version earlier than 3.5.0. Warning: All records in the target repository are overwritten.
655
656
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. Click on the Transfer button. It is good practise to do a Project Compare
656
657
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.
658
4. Select the appropriate options and filename (see the Export to XMI 5. Click on the Export button to begin the export process.
680
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
681
9. Click on the Import button. The package is copied from the source project to the destination project.
659
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. You can also use this technique to copy an entire package within the same model.
660
This topic highlights some administrative functions you might have to carry out to maintain your model. Note that this maintenance applied to models created as .EAP files. The processes are not required for models stored in a DBMS: Rename a Project 660 Compact a Project 660 Repair a Project 661
661
662
Use Case 1373 View - containing, for example, Use Case diagrams 1250 , Analysis diagrams 1306 Dynamic View - containing, for example, Activity diagrams 1248 , Communication diagrams 1289 , Sequence diagrams 1280 , State diagrams 1252 Class View - containing, for example, Class Models 1295 , Code Engineering 882 , Data Models 1313 Component View - containing, for example, Component diagrams 1304 Deployment View - containing, for example, Deployment diagrams 1301 Simple View 1308 .
You can use the first five categories, or devise your own based on the Simple View. You can create 662 Views, rename 663 them, move them into a different order, or delete 664 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.
663
3. In the Name field, type the name of the View. 4. In the Set View Icon Style panel, click on the radio button for the required View icon. 5. If the model root node is under version control 704 , the Add to Version Control checkbox displays, defaulted to selected. If you do not want the new View to also be under version control, deselect the checkbox. 6. Click on the OK button.
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.
664
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.
665
You use Model Validation to check UML models against known UML rules 667 (which you identify in configuring validation 667 ) 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 window does not automatically display, select the View | Output menu option.)
202
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.
666
If you run Model Validation on this diagram, Enterprise Architect displays the following violations in the Output window:
The validation results show that the diagram: Contains a UML ExpansionRegion (ExpansionRegion1) that is missing its child input ExpansionNode Contains an invalid self-generalization on Class2 (UML elements cannot be self-generalized) Contains an OCL violation for the anonymous Association (between Class2 and Object1) Contains a UML ExceptionHandler (ExceptionHandler1) that is missing its child input ObjectNode.
Note: If you double-click on an error in the Output window, you select the diagram element that the error message refers to.
667
Click on the checkbox against each Validation Rule to apply in performing a model validation Tip:
665 .
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 MVRxxnnnn, where:
666
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.
668
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 338 topic (Element, Relationship, Feature): OCL Conformance 669 Validates an item against any defined constraints in OCL.
8.6.2.1 Well-Formedness
This 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: Violation ID MVR010001 MVR050001 MVR050002 Description Element is not a valid UML Element Relationship is not a valid UML Relationship Relationship is not legal for Start Element --> End Element Parent Element:isLeaf=true and cannot be generalized by Child Element Child Element:isRoot=true and cannot generalize Parent Element Element cannot generalize self Statechart violation: extended information Information The element is not a recognized UML 2.1.1 element. The relationship is not a recognized UML 2.1.1 relationship. The relationship between the given start and end elements is not valid for those elements. The Generalization relationship cannot exist between parent and child elements because the parent element is defined as a leaf element. The Generalization relationship cannot exist between parent and child elements because the child element is defined as a root element. The element cannot be self-generalized. The State diagram contains a UML violation; see the extended information for more information about the detected violation.
MVR050003
MVR050004
MVR050005 MVR0B0001
MVR020003
Invalid child Child Element The child element is invalid on the tested parent name (Child Element Type). element.
669
Description Element:Property property has invalid value: "Value" Element:isLeaf=true and cannot be abstract Relationship:Property property is undefined Relationship:Property property has invalid value: " Value" Attribute/AssociationEnd mismatch, Attribute: Mismatch description,...
Information The element property contains an invalid value. The element's isLeaf and isAbstract properties are both set to true, which is invalid. The relationship property contains no value.
MVR060002 MVR090001
The relationship property contains an invalid value. The given attribute has an associationEnd of the same name but they differ in the listed details.
670
To perform an OCL Validation, display the Model Validation Configuration 667 dialog and select the Element: (OCL) Conformance checkbox. Any OCL violations are recorded in the Model Validation Output window 666 .
671
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 Output window.
672
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 Output window.
673
Replication
Replication is a simple process that enables data interchange between .EAP based repositories (not DBMS) and is suitable for use in situations where many different users work independently. Modelers merge their changes into a Design Master only as required. It is recommended that a backup is carried out prior to replication.
Security
User security 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.
674
Sharing a project among a team of designers, developers and analysts is the most efficient way of using Enterprise Architect to manage a team development. 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. Using a shared network directory 674 . In this scenario you place the project file on a shared network drive. Individual developers and analysts can then open and work on the project concurrently. Note that some project views (especially the Project Browser) require occasional refreshing to see changes made by other users. 2. Using replication. Replication 675 is a powerful means of sharing projects between isolated or mobile users. In the replication scenario a project is converted to a design master, then replicas made of the master. Users take the replicas away, modify the project, then bring their replicas back to be synchronized with the master file. 3. Using a shared DBMS-based repository (Corporate, Business and Software Engineering, System Engineering and Ultimate editions).
Network Issues
The main issues with shared network access are: Changes to the Project Browser are not automatically updated. To compensate for this, users must occasionally reload 741 their project to view any project changes at this level . 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 661 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 675 topic.
XMI Import/Export
Use the XMI-based Import/Export 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
704
system.
1998-2009 Sparx Systems Pty Ltd
675
Use the Import/Export 86 menu options 86 (below) to access this feature; they are available through the Project | Import/Export submenu. Also see the XMI 679 topic for further information on XMI-based import and export.
685
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.
8.7.4 Replication
In addition to sharing Enterprise Architect projects in real time over a network, you can also share projects using Replication, options for which are available through the Tools | Manage .EAP File menu. Replication enables different users to work independently of one another, and to merge their changes at a later time. 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 Master menu option. 2. Create replicas menu option.
676 676
from the design master using the Tools | Manage .EAP File | Create New Replica
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 676 . 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.
676
677
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 678 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.
678
679
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 235 : 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 680 to XMI in XMI 2.1 (and earlier) Importing from XMI 681 with support for XMI 2.1 (and earlier) Setting up controlled packages 685 Manually controlling a package 690 by linking it to an XMI file Batch exporting 689 controlled packages Batch importing 681 controlled packages Factoring in the limitations of XMI 684 Applying a UML Data Type Definition 684 (DTD) For further information on XMI, including specifications, see the OMG XML/XMI Technology topic. 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.
680
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.
topic.
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
1998-2009 Sparx Systems Pty Ltd
681
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 684 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 779 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. 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 exporting and importing with XMI 1.0 with Enterprise Architect, some loss of data occurs due to the limitations of XMI 1.0.
682
UML 2.0 (XMI 2.1) UML 2.1 (XMI 2.1) MOF 1.3 (XMI 1.1) MOF 1.4 (XMI 1.2)
Enterprise Architect can also import the *.emx and *.uml2 files 683 generated by tools such as Rational Software Architect (RSA) and Rational Software Modeler (RSM).
Note: To import .emx or .uml2 files, click on the Import EMX / UML2 Files button. Go to Import EMX/UML2 Files 683 . 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.
683
3. Click on the Import EMX / UML2 Files button. The Import Package from XMI dialog redisplays, formatted for .EMX/.UML2 file imports.
684
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.
685
Several DTDs for XMI/UML exist. The OMG defines a standard UML1.3 DTD for use in XMI 1.1. Enterprise Architect uses an extension of this with some additional element extensions for non-standard UML types, such as testing details. Whenever you read an XML file, the XML parser looks in the current directory for the DTD - if specified - using the DOCTYPE element in the XML file. If the parser cannot find the DTD, it records an error and aborts processing. You must ensure the UML_EA.DTD file is in the current XML output path (generated by default).
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. Note: 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 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.
686
Use to 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 737 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. Save a controlled package Load
689 688
Save package to file [Ctrl]+[Alt]+[S] Load package from file [Ctrl]+[Alt] +[L] View package XMI [Ctrl]+[Alt]+[X] Compare with XMI file Compare with Controlled Version Add Branch to Version Control Export as Model Branch Import a Model Branch Get package (for version control)
to an XMI file.
Display the package XMI after the package has been exported to XMI. (Package not under version control.) Compare 779 the current package with a previously-saved XMI file of the package. (Version controlled package.) Compare 779 the current package with the head revision of the version-controlled package file. Apply version control to all packages within a selected model branch 738 , in a single operation. Export 739 a newly created model branch from your own private copy of a model. Retrieve 740 a model branch and import it into either the source model or another model. Enables you to gain access from packages in the version-controlled 704 repository that is currently available in your model. Retrieve the latest version 704 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.
709
dialog.
Provide a bulk update on the status of a package 879 . This includes status options such as Proposed, Validate and Mandatory.
687
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 755 permission to configure controlled packages and package properties.
3. Set the required options, as follows: Select the Control Package checkbox to indicate that this is a controlled package Click on the Version Control drop-down arrow and select the version control repositories; this connects the package to a specific version control configuration In the XMI Filename field, type or browse for the path and XMI file for importing and exporting XMI files. The field accepts Local Path Substitution strings; for example, use an XMI local path definition where:
myLocalPath="C:\Documents and Settings\John\Desktop\EA Models"
Then %myLocalPath%\CIM.xml is equivalent to C:\Documents and Settings\John\Desktop\EA Models\CIM.xml In the UML/XMI Type field, click on the drop-down arrow and select the type of XMI generated; options include Enterprise Architect XMI/UML 1.3, Rational Rose/Unisys UML 1.3 and Generic XMI 1.0/UML 1.3 - currently only Enterprise Architect UML 1.3 is supported for complete import/export round tripping of packages In the Version ID field, type the version ID number In the Owner field, type or select the name of the package owner If required, click on the Use DTD checkbox to use a Data Type Definition (DTD) If required, click on the Log Import/Export checkbox to log import and export activity to a log file If required, click on the Batch Import checkbox to mark the package as a Batch Import package If required, click on the Batch Export checkbox to mark the package as a Batch Export package. 4. Click on the OK button to set the Package Control options.
688
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).
4. Click on the OK button to remove package control. Package control for the selected package has now been removed. 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.
1. In the Project Browser window, right-click on the package to save. The context menu displays. 2. Select the Package Control | Save Package to File menu option. 3. The export process executes automatically according to your configured preferences, overwriting any existing file.
689
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.
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.
690
Enterprise Architect cycles through each checked package and exports it using the options specified in the Controlled Package 686 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.
691
To use XMI for version control, you must first: 1. Select suitable packages in the Project Browser window, to be marked as controlled packages. 2. Configure these with filenames that are visible to a version control system of your choice. 3. Save the controlled packages to establish a model base and check these into the version control system.
692
You can import 697 and export 695 information about Enterprise Architect elements in CSV format. You must define CSV specifications 692 to do this, because the specification defines what types of value from the spreadsheet are to be imported, and how the information is translated between the spreadsheet and Enterprise Architect.
693
The CSV Import/Export File Specification dialog provides the following functionality: Option Specification Name Delimiter Use to Select the unique name for this specification. Specify the character delimiter to use between record fields. 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 ""). Notes Default Filename Default Direction Default Types Record a brief description of the specification. Select the default filename. Set the default action - Import or Export. A specification can be used in either direction, but this enables you to set the default type. Limit the element types being exported, by entering a comma-separated list: for example, class,requirement,component,node,object.
694
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 Available Fields File Specification Add Field Remove Field New Save Save As Delete Close Note:
Include fields generated by Enterprise Architect to embed/reconstruct the package hierarchy. See the Using Preserve Hierarchy 694 section for more details. Select from a list of possible record fields, not yet allocated. List the record fields (in the order they are plotted across the spreadsheet) already assigned. Move all selected fields in the top list to the bottom list. Move all selected fields in the bottom list back to the available list. Create a new specification. Save changes to the currently selected specification. Save the current specification with a new name. Delete the current specification. Close this dialog.
In Available Fields and File Specification, the record fields Created Date and Modified Date are not set when imported from CSV.
Field CSV_KEY
Description A unique identifier for the current element. 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:
695
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.
696
3. Set the required options, as outlined below: Option Package Specification Edit/New File Types Use to Confirm the name of the current selected package. Specify the name of the export specification
692
to use.
Edit the export specification or create a new one. Specify the filename to export to. 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.
Select the Export radio button to export to file. Print out the result list. View the resultant CSV file with the default Windows application for CSV files. Perform the export. Exit this dialog.
697
698
3. Set the required options; as outlined below: Option Package Specification Edit/New File Types Action Print Results View File Run Close Use to Confirm the name of the current selected package. Specify the name of the import specification
692
to use.
Edit the import specification or create a new one. Specify the spreadsheet filename to import from. Not used for import. Select the Import radio button to import from the file. (Grayed-out if the package or a child item in the package is locked.) Print out the result list. View the source CSV file with the default Windows application for CSV files. Perform the import. Exit this dialog.
699
8.10 MOF
Enterprise Architect offers support for exporting packages to XMI under the Meta-Object Facility (MOF) 1.3 and 1.4 standards. MOF models are created by assigning the stereotype metamodel to the package. MOF models can be exported to MOF 1.3 or MOF 1.4 XMI file specification.
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.
700
Because of the similarities between the MOF-model and UML structure models, MOF meta-models are usually modeled as UML Class diagrams. You can also use the Metamodel page of the Enterprise Architect UML 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
1998-2009 Sparx Systems Pty Ltd
701
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 701 Export MOF to XMI
702
3. In the Stereotype field type the value metamodel. 4. Click on the OK button. 5. Right-click on the package in the Project Browser and select the Add | Add Diagram context menu option. Create a Class diagram (the default diagram).
702
6. Give your MOF Class diagram an appropriate name. 7. In the Enterprise Architect UML Toolbox, select the More tools | Metamodel menu option and add the required Metamodel 124 elements to the diagram. The following is an example of a MOF diagram. A MOF diagram can typically contain Package, Class, Enumeration and Primitive elements, and Generalization, Association, Compose and Aggregate relationships.
703
3. In the Filename field, type a name for the XMI file. 4. De-select the Enable full EA Roundtrip checkbox. 5. In the XMI Type field, click on the drop-down arrow and select MOF 1.3 or MOF 1.4. 6. Click on the Export button and wait until the Progress bar reads 100%. 7. Once your file has been created, you can view it by clicking on the View XMI button. MOF diagrams exported to XMI can be imported using the regular import XMI features of Enterprise Architect. See Import from XMI 681 .
704
Enterprise Architect supports version control of packages and their component sub-packages to a central version control repository. You can place any individual packages, View nodes or model root nodes under version control.
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.
System Requirements
Version controlled packages are packages that have been configured for use with version control software. To use version control in Enterprise Architect, a third-party source-code control application is required that controls access to and stores revisions of the controlled packages. Enterprise Architect supports the following version control applications: Subversion, which is available from http://www.subversion.tigris.org/ CVS, which is available from http://www.march-hare.com/cvspro/ Microsoft Team Foundation Server SCC-compatible products; all version control products that provide a client that complies with the Microsoft Common Source Code Control standard, version 1.1 or higher. The following products are SCC-compatible and are known to successfully integrate with Enterprise Architect: - Accurev - Borland Star Teams - ClearCase - MS Visual Source Safe - MS TFS-SCC - MKS Source Integrity - Perforce - Serena Dimensions - Serena Change Manager - Snapshot CM - SourceGear Vault - Source Offsite Tested by Sparx Tested by Sparx Tested by Sparx Tested by Sparx Tested by Sparx Tested by Sparx Tested by Sparx Users report success Users report success Tested by Sparx Users report success Users report success
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.
Set-Up
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.
705
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.
Usage
There are four basic ways in which the version control facility might be used: Use Single Shared model Description 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 models An Enterprise Architect model is created by a single user who configures it for 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 white paper: http://www.sparxsystems.com/resources/whitepapers/index.html.
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 743 server. You can edit the package but there could be version
706
Icon
For example, below, CVSOO and CVSPackage are configured for version control. CVSOO is checked out to you, and CVSPackage is not.
See Also Version Control Basics 706 Apply Version Control To Models 706 Version Control and Team Deployment Version Control Menu 708 Version Control Setup 708 Use Version Control 731 Offline Version Control 743
707
707
When a user checks-out 736 a package, Enterprise Architect sends a command to the version control system to check-out the equivalent XMI file. The version control system then puts the latest revision of the file into the user's working copy directory, overwriting any previous revision of the file in that directory. Enterprise Architect then imports the package file into the model, updating the contents of the existing package in the model. When checking-in 736 , Enterprise Architect exports the package as an XMI file, overwriting the existing local working copy of the file. The new file is then checked-in to the version control system.
as required.
708
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.
Display the Package Control Options 734 dialog, which enables you to specify whether this package (and its children) is version controlled, and which version control configuration applies.
709 .
Version Control Settings Display the Version Control Settings dialog Validate Package Configurations Work Offline
Test the validity 735 of the version control settings associated with each version controlled package within your current model. Work independently of the version control server
743 ,
if it is unavailable to you.
Typically there should be: A server component that manages a version control repository 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, to use your installed version control product you must define a Version Control Configuration within Enterprise Architect. Version control can be assigned to individual packages, view nodes or root nodes in Enterprise Architect. Each package can only be linked to one Version Control Configuration at a time, although it is possible to connect multiple control configurations for each model. You can use the Version Control Settings dialog to set up a connection to your version control application. To set the Version Control Configuration, select the Project | Version Control | Version Control Settings menu option, and see the Version Control Settings Dialog 709 topic.
1998-2009 Sparx Systems Pty Ltd
709
See Also Version Control with SCC 711 Version Control with CVS 715 Version Control with Subversion Version Control with TFS 728
722
710
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 711 Version Control with CVS 715 Version Control with Subversion 722 Version Control with TFS 728 To import a previously defined configuration for use in the current model, follow the steps below:
711
1. Click on the New button. 2. In the Unique ID field, click on the drop-down arrow and select one of the previously defined version control configurations. 3. Click on the Save button to save the selected version control configuration in this model. See Also Version Control Nested Packages
711
712
. 3. Click on the New button. 4. In the Unique ID field, type a suitable name. Click on the SCC radio button. 5. To the right of the Local Project path field, click on the Select Path... button. The Browse for Folder dialog displays.
713
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.
714
Note: A new entry is also created in the Local Paths 917 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 This model is private Use to Specify whether all users connect to a single shared copy of the model (for example, 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 controlled packages to stubs only Unique ID Set nested version controlled packages to stubs or fully expanded trees. Defaults to selected. For a full explanation of this option, see Version Control Nested Packages
711 .
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.
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).
Read only. Shows your user name as the user currently logged into the SCC provider. Read only. Shows the name of the provider specified in the database. 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.
715
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.
to your
Each working folder you create contains information on connection to a repository. This connection information includes the path to the local or remote repository, the user name and password in order to make a connection. 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.
716
password for you before you can make a connection. 2. Open a command prompt window and navigate to, or create, a suitable directory to hold your CVS working copy directory; for example:
C:\> cd myCVSWorkSpace
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. 5. Verify that your CVS installation is working correctly. 6. Change directory to the one you specified as the working copy, in the cvs checkout command above; that is, C:\myCVSWorkSpace\moduleName 7. Now create a test file, such as Test.txt, containing the text CVS Test. You can do this with the command:
echo CVS Test > Test.txt
10. Take note of the userID that follows the filename. Enterprise Architect must find and use this user ID when you create your version control configuration. (See the example dialog below.) 11. Launch Enterprise Architect and open or create the model containing the packages to place under version control. 12. Select the Project | Version Control | Version Control Settings menu option. The Version Control Settings dialog displays. 13. Click on the New button, enter a suitable name in the Unique ID button in the Type field.
718
717
14. To specify the Working Copy path 718 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.
718
15. Click on the OK button to return to the Version Control Settings dialog. 16. The Current User 719 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 719 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 917 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 This model is Private Use to 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 controlled packages to stubs only Set nested version controlled packages to stubs or fully expanded trees. Defaults to selected. For a full explanation of this option, see the Version Control Nested Packages 711 topic. Specify a configuration name that readily distinguishes it from other configurations. The unique ID displays as a selection in a list of Version Control configurations a package can connect to. In addition it is possible to select a previous version control configuration from this drop-down menu providing the configuration is not in use in the current model. Specify the folder where the XML files representing the packages are stored. This folder should already exist before it is specified here.
Unique ID
719
Options
Use to 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 a .EAP file which is to be shared (e.g. a SQL database).
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'. Specify the full path of the CVS client's executable file.
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.
720
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.
721
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 917 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 This model is Private Use to 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 controlled packages to stubs only Unique ID Set nested version controlled packages to stubs or fully expanded trees. Defaults to selected. For a full explanation of this option, see Version Control Nested Packages
711 .
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. 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 a .EAP file which is to be shared (for example, a SQL database).
722
Use to 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'. The full path name of the CVS client's executable file.
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.
723
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 checking-out a repository sub-tree 723 .
724
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. Schema file:/// http:// https:// svn:// svn+ssh:// Access Method Direct repository access (on local disk). Access via WebDAV protocol to a Subversion-aware Apache server. Same as http://, but with SSL encryption. Access via custom protocol to an svnserve server. Same as svn://, but through an SSH tunnel.
http://www.svnbook.red-bean.com/en/1.4/svn.basic.in-action.html#svn.advanced.reposurls.
See Also Configure Version Control with Subversion
725
724
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.
3. Delete the directory tempDir and all its contents. For further information see http://www.svnbook.red-bean.com/en/1.4/svn.reposadmin.basics.html.
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."
725
-- "/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):
svn checkout --username "UserName" --password "myPassword" "svn://myServerName:3690/myProject" "/.../drive_c/workingCopyDirectory"
Using a Win32 client (run the command within a batch file run under CrossOver):
"C:\Program Files\Subversion\bin\svn.exe" checkout --username "UserName" --password "myPassword" "svn://myServerName:3690/myProject" "C:\SVN-test\workcopy" >"C:\SVN-test\stdout.txt" &2>"C:\SVN-test\stderr.txt"
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 724 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.
rem "C:\Program Files\Subversion\bin\svn.exe" checkout --username "UserName" --password "myPassword" \ "svn://myServerName:3690/myProject" "C:\SVN-test\workcopy" >"C:\SVN-test\stdout.txt" &2>"C:\SVN-test\stderr.txt" rem "C:\Program Files\Subversion\bin\svn.exe" add "C:\SVN-test\workcopy\myTestFile.xml" \ >"C:\SVN-test\stdout.txt" &2>"C:\SVN-test\stderr.txt" rem "C:\Program Files\Subversion\bin\svn.exe" commit -m"a message" "C:\SVN-test\workcopy\myTestFile.xml" \ >"C:\SVN-test\stdout.txt" &2>"C:\SVN-test\stderr.txt" rem "C:\Program Files\Subversion\bin\svn.exe" lock "C:\SVN-test\workcopy\myTestFile.xml" \ >"C:\SVN-test\stdout.txt" &2>"C:\SVN-test\stderr.txt"
726
2. Select the Project | Version Control | Version Control Settings menu option. 3. Click on the New button, enter a suitable name in the Unique ID field, then click on the Type: Subversion radio button.
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.
727
Note: A new entry is also created in the Local Paths 917 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.
Unique ID
8.11.5.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. You can download TortoiseSVN from: http://www.tortoisesvn.tigris.org/.
728
729
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.
730
6. The TFS Exe Path field displays the default installation path. Click on the Select Path... button if it is necessary to modify this field. 7. Click on the Save button to save the configuration you have defined. 8. The new configuration is added to the list in the Defined Configurations panel. Note: A new entry is also created in the Local Paths 917 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.
Unique ID
Password
731
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 711 topic for more information. Replication 675 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.
732
Menu Option & Function Keys Configure [Ctrl]+[Alt]+[P] Check In Branch [Ctrl]+[Alt]+[B]
Use to
Display the Package Control Options 734 dialog which enables you to specify whether this package (and its children) is controlled, which file it is controlled through, and which version control configuration to use. 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 737 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. Submit the currently selected package to the central repository. Enterprise Architect prompts you to enter optional comments describing changes to the packages. 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. 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.
Check In
Check Out
733
Menu Option & Function Keys Get Latest Get All Latest Put Latest
Use to
Retrieve the latest revision of the package from the repository. Available only for packages that are checked in. Retrieve the latest revision of all version controlled packages in the project. Only retrieves packages that are checked in. 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. 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. 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 the current package with the XMI version on disk.
File Properties
File History
Apply version control to all packages within a selected model branch, in a single 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 739 a newly created model branch from your own private copy of a model. Retrieve 740 a model branch and import it into either the source model or another model. Access packages in the version control repository that are not currently available in your model. Update the values recorded in the Enterprise Architect project to match the values reported by the version control provider 742 , without performing an XMI import or export. Use this function when the package version control statuses recorded in your Enterprise Architect project are out of synchrony with the version control statuses reported by your version control provider.
Export as Model Branch Import a Model Branch Get Package Re-synch all statuses with VC providers
709 .
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.
734
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.
735
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 706 icons, as appropriate.
736
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.
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 package Refresh model view Always apply above settings (The default.) Leave the package content in its current state.
Refresh the model view to show any changes from other checked out packages. Apply the settings in the above three fields every time you check out a package 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.
1998-2009 Sparx Systems Pty Ltd
737
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 743 . If the packages under version control contain any alternative images 312 and those images are subject to frequent change, you can set the Export alternate images option on the Options dialog 235 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 818 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.
2. Click on the package to check in, or use: [Ctrl]+click to add or remove several individual packages [Shift]+click to select a range of packages All to select all packages listed None to clear all selected packages. 3. Click on the OK button to check-in the selected packages. 4. If required, enter a comment when prompted to do so. (This comment applies to all packages that you have checked in.) 5. Each package icon changes to indicate that the packages have been checked-in.
738
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.
To apply version control to a model branch, follow the steps below: 1. Right-click on the required package and select the Add Branch to Version Control option. The Apply VC to Branch dialog displays.
732
context menu
739
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 739 . 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 740 .
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.
740
741
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.
742
Package 67 context menu option Select the File | Reload Current Project 71 menu option (or select the Reload Project icon in the Project Toolbar 132 , or press [Ctrl]+[Shift]+[F11]) Close the project and reopen it. You can refresh the current diagram in the following ways: Select the Window | Reload Current View 106 menu option Right-click on the opened diagram tab 141 in the diagram view, and select the Reload <diagram name> context menu option.
2. Double-click on any result message to select, in the Project Browser, the corresponding package.
743
Use Version Control Whilst Disconnected From Your Version Control Server
Enterprise Architect 'remembers' the status of a models version controlled packages. Packages that were checked out 736 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.
744
745
topic.
Other Security tasks can be performed by users who do not have Administrative rights. These tasks include:
764
746
Notes: User security is not enabled by default in Enterprise Architect; you must enable it
746
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 755 topic.
The Authorization dialog displays. 3. In the Enter authorization key field, type the authorization key from the Sparx Systems website. 4. 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 755 ) and a password of password.
5. 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 6. Set up users and permissions as required. Note: Once security has been enabled, you must have the Security - Enable/Disable turn it off. The initial administrator automatically has this access right.
755 759
topic.
access right to
7. To disable security, click on the Enable Security menu option, and again type the authorization key in
1998-2009 Sparx Systems Pty Ltd
747
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.
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.
748
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 749 , assign User IDs to groups 751 , set up Single Permissions 752 or View All 753 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. 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.
749
Notes: You can transport the user definitions between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
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.
750
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.
751
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 754 as required.
752
4. Click on the OK button to assign the user to each group. Notes: To create new user groups, see the Maintain Groups
754
topic.
819
You can transport these user groups between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
and Import
753
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 Import Reference Data 820 options on the Tools menu.
819
and
754
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 and Import Reference Data 820 options on the Tools menu.
819
755
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 and Import Reference Data 820 options on the Tools menu.
819
and repair
661
project database.
767
dialog.
772
Enable auditing and display data in the Audit View tab. Create, delete, import and export Baselines Merge data
776 776 .
774
Check and repair project integrity Add, modify and delete datatypes
756
Permission Configure Packages Configure Resources Configure Stereotypes Configure Version Control Export XMI Generate Documents Generate Source Code and DDL Import XMI Lock Objects Manage Diagrams Manage Issues Manage Project Information Manage Reference Data Update Manage Replicas Manage Tests Reverse Engineer from DDL and Source Code Security - Enable/Disable Security - Manage Locks Security - Manage Users Spell Check Transfer Data Transform Package Update Diagrams Update Element Use Version Control
Add, modify and delete Stereotypes Set up version control options Export
680 709
model to XMI.
1155
Generate RTF
and HTML
1233
Generate source code 892 and DDL 1100 from model element. Synchronize 890 code against model elements if it already exists. Import
681
Lock an element
or package
762 . 299
Create 279 new diagrams, copy existing save diagram as UML Pattern 484 . Update and delete Issues
862 . 833 ,
and delete
296
diagrams. Also
metrics, risks.
795 .
and synchronize
676
replicas.
843 .
Reverse engineer 884 from source code or ODBC, and synchronize model elements against code. Disable
746
747 ,
752 .
Transfer model
Perform transformations
Save model changes (including delete) for elements and relationships 435 . Check files in and out
736
packages
271 ,
757
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. 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.
758
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 635 and Connect to SQL Server Data Repository 632 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.
759
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.
2. In the Enter old password field, type your current password. 3. In the New password field, type your new password. 4. In the Retype new field, type your new password again, for confirmation. 5. Click on the OK button.
760
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. 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.
761
You can lock a package, element or diagram using the corresponding Lock context menu option in the Project Browser, and you can lock an element or diagram using the corresponding Lock context menu option in the diagram. Under the standard security policy (Require User Lock to Edit deselected), when you select the Lock option the Element Lock dialog displays:
The four lock options available are: No lock - do not lock this element; clear any existing lock Full lock - lock this element so that no-one can edit it User lock - lock this element so that only the locking user can make further edits Group lock - lock this element so that any member of the specified group (in the GroupID field) can update the element, but others are excluded.
Select the appropriate lock and 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
762
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.
That is, a connector can be added if its source is unlocked, regardless of the locking state of the destination (think of it as modifying what the source can see). The exception is composition connectors, where the target (that is, parent) must be unlocked (think of it as modifying the parent by adding children). Connectors with locked source or target elements are also locked. To unlock the connector, you must unlock 757 the source and/or target element.
762
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 761 .
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.
763
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.
The meaning of the marker depends on the security mode. If you are using the Require User Lock to Edit
747
security mode:
762
No marker - there is no lock, the item is not editable, but any user can now apply a user lock item
to edit the
764
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
747
security mode
747 :
No marker - there is no lock, the item is editable, but any user can now apply a user or group lock 762 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 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.
764 .
765
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.
766
8.13 Auditing
Auditing is a project-level feature, available in the Corporate, Business and Software Engineering, System Engineering and Ultimate editions, 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. 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
767 .
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 767 for more information on the different settings available.
You can also obtain a snapshot of selected items in the model, using the Model View 148 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 to monitor work flow 785 and other events of concern to 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 1159 .
Audit History
Using Auditing, you can track changes to an element or connector over time. However, enabling Auditing also enables an Audit History 774 tab in the Output window, which summarizes all changes made to the selected element or connector.
767
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 775 for more information.
Enable Auditing
To enable Auditing: 1. Select the View | Audit View menu option to open the Audit View 2. Click on the Audit Settings button. The Audit Settings 3. Select the Enable Auditing checkbox. 4. Click on the OK button to close the Audit Settings dialog. 5. Close the Audit View dialog. You can also open the Audit View by clicking on the Audit View button in the Other Views toolbar.
767 770 .
dialog displays.
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.
768
The settings on this dialog are described in the following topics: Audit Scope 768 Audit Logs 768 Auditing Level 769 Audit Options 769
769
Note: Some of these functions can be accessed through the Automation Interface. For more information, see the Repository 1648 topic in SDK for Enterprise Architect. 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.
The audit options enable you to configure auditing to record changes to only certain types of elements. Maintenance - select this radio button to audit maintenance elements; that is: Package Requirement Feature Use Case Actor Note Issue Change
770
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.
The Audit View is divided into three main areas: View controls Audit tree Record display. The data in the Audit tree and Record display is determined by the view controls and mode 773 and, if synchronizing 773 with the Project Browser, by the package, diagram or element you have selected.
View Controls
The view controls provide a variety of settings for controlling auditing and the display of audit records.
772 .
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 772 section, such as: Sorting
1998-2009 Sparx Systems Pty Ltd
771
767
In the audit tree: The green tick indicates a creation The yellow pencil indicates an edit The red cross indicates a deletion. If you right-click on an element in the audit tree (such as MyClass) a context menu displays. This menu enables you to locate the selected element in: The Project Browser Any diagrams in which it exists.
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). When the change was made The path of the change (for example, Class Class1 - Attribute Att1 - Attribute Constraint Constraint).
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.
772
The Load (Advanced or Raw 773 modes) or Refresh (Standard 773 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 767 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.
773
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 and which time filter 773 is being applied to the data.
773
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 770 . 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.
774
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 todays 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.
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 Where the change was made
1998-2009 Sparx Systems Pty Ltd
775
The value of the characteristic before the change The value of the characteristic after the change.
Large Deletions
Deleting large packages or package structures, or large numbers of elements, takes significantly longer with Auditing on. You might disable Auditing 767 before performing such a deletion.
XMI Imports
Importing XMI 681 takes longer with Auditing enabled. A project-level option auditing of XMI Imports.
767
Reverse Engineering
Reverse engineering 884 code takes longer with Auditing enabled. A project-level option disabling auditing of reverse engineering.
767
is provided for
776
Enterprise Architect (Corporate, Business and Software Engineering, System Engineering and Ultimate editions) includes tools to help you manage and review changes to your models over time. These tools apply the concepts of Baselines, Differencing and Merges. You can also obtain a snapshot of selected items in the model, using the Model View 148 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 to monitor work flow 785 and other events of concern to you.
Baselines
Enterprise Architect (Corporate, Business and Software Engineering, System Engineering and Ultimate editions) provides a facility to create a Baseline 777 or snapshot of the contents of a selected package and its child packages at a particular point in time, enabling 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 779 ) 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 782 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 766 , 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 Manage Baselines 755 permission to create, import and delete Baselines, and Restore From Baseline permission to merge data from a Baseline. Security permissions are not required to select an existing Baseline and perform a comparison with the model.
777
8.14.1 Baselines
Enterprise Architect (Corporate, Business and Software Engineering, System Engineering and Ultimate editions) provides a facility to 'Baseline' (snapshot) a model branch at a particular point in time for later comparison with the current package state. This 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. Baselines are stored within the model in compressed XML format. More than one Baseline can be stored against a single Enterprise Architect package. You can also save a Baseline to an XML file for storage or archive, or for distributing to other users working on models derived from a master project. 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 generally used in conjunction with the Compare utility (diff 779 ), 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
777
would be to:
1. Create 779 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.
778
Use to Review the baselines for the current model branch, listed by version reference the highest alphabetical/numerical value at the top.
779
with
If an entry is longer than the display area, a horizontal scroll bar displays at the bottom of the panel. Use this to scroll to the text that is not shown. Run the Compare 779 utility on the selected Baseline and the current model branch, and to display the differences 781 between the two. Completely restore the model branch from the selected Baseline.
Show Differences Restore to Baseline New Baseline Delete Selected Load Other Baselines
779 .
Delete the selected Baseline. Display a drop-down menu that enables you to load Baselines from another model, in either an .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.
779
Use to Export the selected Baseline to an XML file on disk. Compare the selected model branch with an XML 1.1 file on disk. A browser displays, which you use to locate the file. Set filters
780
dialog.
Use to Display the package name of the currently selected model branch. 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.
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.
780
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 777 dialog 777 ; 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. Show Elements that are List elements that: Have been changed since the Baseline was created Are in the Baseline only (that is, have been deleted from the model since the Baseline was created) Are in the model only (that is, have been created since the Baseline was created)
781
Option
Use to Have not changed since the Baseline was created (you might generally leave this checkbox unselected).
Exclude: Changes to diagrams Changes to the Date Modified field for an item Changes to the Date Created field for an item Child items of a deleted item Changes to advanced properties (defaults to selected).
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.
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 782 .
782
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 currently-selected item in the left hand panel.
The toolbar icon names and functions are, from left to right: Option Refresh Merge To Model Next Change Previous Change Expand All Collapse All Expand To Changed Items Find in Project Browser Log To XML Compare Options Manage Baselines Help Use to Re-run the comparison to refresh the current display. Merge the values of the currently-selected item in the Baseline back into the model. Highlight the next changed item (skips Moved items). Highlight the previously-changed item. Fully expand the selected item. Collapse the changed items in the selected item. Expand the selected item to show changed items only (in the event that you have selected to also show 780 unchanged items in the comparison). Highlight the item in the Project Browser.
Log the changes to an XML file. A browser displays, on which you specify the file name and location. Display the Compare Options
780 777
dialog. dialog.
776 .
783
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 Merge from Baseline Add from Baseline Delete from Model Use to Restore the item in the model to the Baseline state, or restore a deleted item from the Baseline. Remove a recently-created item from the model.
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. Refresh (Object-level items). Re-run the comparison to refresh the current display. Find in Project Browser Expand All Expand To Changed Items Collapse All Log To XML Compare Options Locate and highlight the item in the Project Browser.
Fully expand the selected item. Expand the selected item to show changed items only.
Collapse the changed items in the selected item. Log the changes to an XML file. A browser displays, on which you specify the file name and location. Display the Compare Options
780
dialog.
Select the appropriate checkbox against each type of difference to roll back in the model from the Baseline. Option Changed In Baseline Only In Model Only Moved Full Restore from Use to Restore all changed items in the model branch to the Baseline state. Restore all deleted items to the model branch from the Baseline. Remove all recently-created items from the model branch. Restore all moved items to their original locations, as identified in the Baseline. Completely restore the model branch to the version held in the Baseline XMI 1.1
784
Option XMI
Use to 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).
785
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.
786
8.16 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 1117 in developing your model and code, Enterprise Architect automatically creates Transformation Dependency 1117 connectors that you can trace - with the Hierarchy window 194 - 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 791 (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 554 .
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.
787
Traceability in this model is examined further in the following topics: Packages and Elements 787 Create Traceability Diagrams Traceability Tools 792
791
788
The Requirements diagram also makes it clear what Requirements form subsets of others, or are components of more than one other Requirement.
789
790
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.
791
792
You can also generate the diagram using the Add | Related Elements context menu option 339 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 193 window 193 . 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 792 such as the Relationships Matrix and relationships Hierarchy window.
793
respectively.
Hierarchy Window
The Hierarchy window 194 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 Hierarchy 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 Hierarchy window. 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 156 , Project Browser and Hierarchy 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 Hierarchy window - how that element interacts with other elements in the model. You can select any or all of the relationship types available in the Hierarchy window toolbox. The single type selected below is Realizes (Implements), and the selected element is the Delete User Use Case. The Hierarchy 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 Hierarchy 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 Hierarchy 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.
Relationships Matrix
Using the Relationships Matrix 457 , 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.
794
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 1220 and Implementation report 1222 , 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 183 . 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 766 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.
795
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 796 General Types 804 Maintenance 811 Metrics and Estimation UML 814 Data Types 817
813
Having set up the reference data in a project, you can also export and import Note:
818
it between projects.
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 755 permission to update and delete reference items.
796
8.17.1 People
The People dialog enables you to control the following for your project: Project Project Project Project Authors 796 Roles 799 Resources 801 Clients 802
797
Complete the fields as described below: Option Name Use to Type the name of the person registered as a Project Author. If you are using a Windows Active Directory, you can select names from the directory. Click on the [ ... ] (Browse) button to display the Select Users 798 dialog. You can also type a list of names separated by semi-colons. This enables you to define a group of people sharing a role, such as a team of Developers, Testers or Analysts. Do not leave any spaces between the names and the semicolon. 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 799 tab.
798
Option
Use to Note: If you type a role, this is not added to the roles on the Project Roles tab.
Type any additional notes concerning the Project Author. Review the Project Authors already defined.
Click on the Save button to add the new names to the Defined Authors list. To add further Authors, click on the New button. 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 Import Reference Data 820 options on the Tools menu.
819
and
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.
799
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.
800
To add further roles, click on the New button and complete the fields as described below: Option Role Description Notes Defined Roles Use to Type the name of the role. Type a short description of the role. Type any additional information related to the role. 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 Author 796 tab of the People dialog, and the Resource Allocation 834 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.
801
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 Import Reference Data 820 options on the Tools menu.
819
and
Complete the fields as described below: Option Name Organization Use to Type the name of the person listed as a resource. The resource name is available for use in Resource Management 834 . Type the name of the organization employing the resource.
802
Option Role(s) Phone 1, Phone 2, Mobile, Fax Email Notes Available Resources
Use to Type the role the resource plays in the project (for example, Designer, Analyst, Architect). Type the contact telephone numbers for the resource.
Type the email address for the resource. Type any additional notes on the resource. Review resources that have already been defined.
Click on the Save button to add the new resource to the Available Resources list. To add further resources, click on the New button. 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 Import Reference Data 820 options on the Tools menu.
819
and
803
Complete the fields as described below: Option Name Organization Role(s) Use to Type the name of the client. Type the name of the organization that employs the client. 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. Email Notes Defined Clients Type the email address of the client. Type additional notes on the client. Review clients that have already been defined.
Click on the Save button to add the new client to the Defined Clients list. To add details of further clients, click on the New button. To delete a client record, click on the name in the Defined Clients list and click on the Delete button.
804
Note: You can transport these client definitions between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
805
806
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 224 page you must also select the Element Shadows on checkbox.
807
To add a new constraint, click on the New button and: In the Constraint field, type the name of the constraint; for example, Assumption In the Description field, type a brief description of the constraint In the Note field type any additional information required Click on the Save button.
The constraint displays in the Defined Constraint Types list. Note: You can transport these constraints between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
808
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 Import Reference Data 820 options on the Tools menu.
819
and
809
To add a new requirement type, click on the New button and: In the Requirement field type the name of the requirement type In the Description field type a short description of the requirement type In the Weight field type the weighting to apply to the requirement type In the Note field, type any additional information on the requirement type Click on the Save button.
The requirement type displays in the Defined Requirement Types list. Note: You can transport these requirement types between models, using the Export Reference Data Import Reference Data 820 options on the Tools menu.
819
and
810
To add a new scenario, click on the New button and: In the Scenario Type field type the name of the scenario type In the Description field type a short description of the scenario type In the Weight field type the weighting to apply to the scenario type In the Note field, type any additional information on the scenario type Click on the Save button.
The constraint displays in the Defined Scenario Types list. Note: You can transport these scenario types between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
811
8.17.3 Maintenance
To control Testing types Maintenance dialog.
812
for your project, select the Settings | Maintenance menu option to display the
812
To add a new problem type, click on the New button and: In the Problem Type field type the name of the problem type In the Description field type a short description of the problem type In the Weight field type the weighting to apply to the problem type In the Note field, type any additional information on the problem type Click on the Save button.
The problem type displays in the Defined Types list. Note: You can transport these problem types between models, using the Export Reference Data 819 and Import Reference Data 820 options on the Tools menu. You transport the problem types together with test types as a Maintenance Types file.
813
To add a new test type, click on the New button and: In the Test Type field type the name of the testing type In the Description field type a short description of the testing type In the Weight field type the weighting to apply to the testing type In the Note field, type any additional information on the testing type Click on the Save button.
The testing type displays in the Defined Types list. Note: You can transport these test types between models, using the Export Reference Data 819 and Import Reference Data 820 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.
833
topics, or
814
Risk Types.
840
815
815
Notes: Shape Scripts adopt the same color gradient settings as normal elements, as defined in the Standard Colors page of the Options dialog. Custom shapes do not function in Sequence (Interaction) diagrams. If an element's appearance is modified by a Shape Script, many of the Advanced options for that element are disabled. For information on creating Shape Scripts, see SDK for Enterprise Architect.
1523
337
context menu
Any Tagged Value names created display in the drop-down lists of Tagged Value names in the Tagged Value dialogs for elements, operations and attributes. For more information regarding the use of Tagged Values see the Tagged Values Window 196 topic. To display the Tagged Value Types tab, select the Settings | UML menu option to display the UML Types dialog, and click on the Tagged Value Types tab.
816
For further information on adding and modifying Tagged Values, see SDK for Enterprise Architect Note:
1542
You can transport these Tagged Value Type definitions between models, using the Export Reference Data 819 and Import Reference Data 820 options on the Tools menu. Tagged Value Types are exported as Property Types.
8.17.5.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 453 and target 455 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
1998-2009 Sparx Systems Pty Ltd
817
n..* - n, or more than n instances. To access this dialog, select the Settings | UML menu option. Click on the Cardinality Values tab.
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 Import Reference Data 820 options on the Tools menu.
819
and
818
Use to Specify the name of the programming language. 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 940 once at least one datatype has been added to the language. Specify the name of the datatype; this is the language-specific name of the datatype. Specify the common type, the generic name of the datatype; for example, the Java boolean datatype has a common datatype Boolean. Create a new data type. Save the newly created datatype. Delete the selected datatype.
You can transport these data types between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
819
Examples of where exporting and importing reference data can be useful include: Copying glossaries from one model to another Adding additional stereotype profiles by merging new stereotypes into the model Updating reference data from files supplied by Sparx Systems as a maintenance release Copying resources, clients and so on from one model to another.
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 937 ; 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 185 (JavaScript, JScript and VBScript) Cardinality Types 816 Constraint Status Types 807 CSV 692 Specifications Defined Metric Types 839 Defined Problem Types 811
820
Diagram Matrix Profiles 308 (Model Profiles) Estimation - Environment Complexity Factor Values 827 Estimation - Technical Complexity Factor Values 825 General Constraint Types 806 General Effort Types 838 Import Component Types 912 Linked Document Templates 430 Macro List 918 (Preprocessor macros) Maintenance Types 811 (both Problem Types and Test Types) Model Authors 796 Model Data Types - Code 817 and DDL 1100 Model Images 312 Project Clients 802 Project Glossary 874 Project Issues 869 Project Resources 801 Project Roles 799 Project Tasks 866 Property Types 1542 (Tagged Value Types) Requirement Types 808 Risk Types 840 Scenario Types 809 Security - Group Permission 754 Security - Groups 754 Security User Groups 751 Security - User Permissions 752 Security - Users 747 Standard Complexity Types - currently, these cannot be directly edited and are therefore effectively standard for all models; they can be listed using the Predefined Reference Data Tagged Value type 1545 ComplexityTypes. Status Colors 804 (the colors defined for status types) Status Types 804 Status - Applies To 804 (elements to which the status can be applied) Stereotypes 1468 (all those listed on the Stereotypes page of the UML Types dialog) Templates - HTML Style (exports the web templates 1235 listed in the Templates folder of the Resources window) Templates - HTML Style Detail (exports the content of the HTML report templates) Templates - RTF Document (exports the Extended RTF Style templates 1163 in the Templates folder of the Resources window) Templates - RTF Style (exports the Legacy RTF Style templates 1208 in the Templates folder of the Resources window) Templates - RTF Style Detail (exports the content of the RTF templates) Templates - RTF Tag and Language Options (exports RTF word substitution 1211 templates) Test Types 812
topic.
821
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 819 . 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.
822
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 819 . 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.
Part
IX
Project Management |
824
9 Project Management
Enterprise Architect provides strong support for managing your project. Project Managers can use Enterprise Architect to estimate project size, measure risk and effort, and assign resources to elements. Enterprise Architect also provides support for testing, change control and maintenance.
Resource Management
Resources 833 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 857 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
862
Testing
Enterprise Architect enables you to create and manage test scripts 842 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. See Also Project Glossary 874 Update Package Status Manage Bookmarks 880
879
825
9.1 Estimation
Calibrating
The following values must be carefully calibrated in order to gain the best possible estimates: Technical Complexity Factors 825 , which are values that attempt to quantify the difficulty and complexity of the work in hand Environment Complexity Factors 827 , which are values that attempt to quantify non-technical complexities such as team experience and knowledge Default Hour Rate 829 , 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 828 .
826
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.
1998-2009 Sparx Systems Pty Ltd
827
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
828
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.
Use to Confirm the root package in the hierarchy. All Use Cases under here could potentially be included in the report. Re-run the search, usually after you change the filter criteria. 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).
829
Use to Include Use Cases with a keyword that matches the wildcard value in the field (use * to match any characters). Check the total count of Use Cases in estimate. Review the parameters that describe the degree of technical complexity of the project. While the unadjusted TCF value comes from theTechnical Complexity Factor 825 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. Review the parameters that calculate the degree of environmental complexity of the 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 827 tab of the Metrics and Estimation Types dialog. The final project estimate is directly proportional to the ECF. Check the sum of the Use Case complexity numbers.
Unadjusted Use Case Points (UUCP) Ave Hours per Use Case Total Estimate
Check the average of the number of hours assigned to easy, medium and difficult Use Cases; for information purposes only. Review the detailed breakdown of the final figure. Note that you must tailor the hours per Use Case point figure to the level that matches your type of project and capability based on known previous project outcomes. Set the default hours
829
Re-run the estimate, usually after you change the hours or Use Case point number. 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
830
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.
831
9.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
300 .
Tags Compartment
The tags compartment lists all Tagged Values for an element as entered in the Tagged Values
390
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 Require element Properties dialog.
383
tab of the
Constraint Compartment
The constraint compartment shows a list of element constraints as entered in the Constraints element Properties dialog.
386
tab of the
832
Testing Compartment
The testing compartment lists all of the tests associated with an element as listed in the Testing (select the View | Testing menu option).
843
window
Maintenance Compartment
The maintenance compartment lists all of the defects, changes, issues and tasks associated with an element, as listed in the Maintenance 857 window (select the View | Maintenance menu option).
833
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.
The asterisk on a tab indicates that the tab contains saved information. If there is no information for a type of test, 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 834 topic To record additional project management information for an element, see: the Effort Management 834 topic (record effort expended on the element) the Risk Management 835 topic (record risk associated with the element) the Metrics 836 topic (record metrics measured for an element) To obtain a report of resource allocation details, see the Resource Report 837 topic To configure Project Management data and populate the drop-down lists used on the Project Management dialog tabs, see the following topics: Roles 799 Clients 802 Effort Types 838 Metric Types 839 Risk Types 840 To find out about the functions of the Project Management toolbar, see the Project Management Window 201 topic.
834
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 755 permission to update and manage project resources, effort, metrics and risks.
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 195 window 195 ; it cannot be edited in that window) Notes on the activity history of the resource (this text is also displayed in the Notes 195 window 195 ; it cannot be edited in that window). To edit existing items, click on the required item in the list on the left of the window.
835
4. Click on the New button on the Project Management window toolbar. (If the window does not display as shown, click on the Show/Hide Properties button on the toolbar.)
The Effort tab enables you to enter the following data: A name for the effort (short description) The type of effort (click on the drop-down arrow and select, or type the name in; typed names are not added to the global effort type 838 list) The time the effort will expend Some notes on the effort (this text is also displayed in the Notes 195 window 195 ; it cannot be edited in that window). To edit an existing item, click on the required item in the list on the left of the window. 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 1635 or similar tools to create your own custom reports based on effort information you enter;
836
The Risks tab enables you to enter the following data: A name for the risk (short description) The type of risk (click on the drop-down arrow and select, or type the name in; typed names are not added to the global risk type 840 list) A weighting for the risk Some notes on the risk (this text is also displayed in the Notes 195 window 195 ; it cannot be edited in that window). To edit an existing item, click on the required item in the list on the left of the window. Note: Although Enterprise Architect does not currently provide detailed reports on risks within a model, you can use the Automation Interface 1635 or similar tools to create your own custom reports based on risk information you enter;
9.3.4 Metrics
To enter metrics for an element, follow the steps below: 1. Select the element. 2. Select the View | 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 button on the Project Management window toolbar. (If the window does not display as shown, click on the Show/Hide Properties button on the toolbar.)
837
The Metrics tab enables you to enter the following data: A name for the metric (short description) The type of metric (click on the drop-down arrow and select, or type the name in; type names are not added to the global metric type 839 list) A weighting for the metric Some notes on the metric (this text is also displayed in the Notes 195 window 195 ; it cannot be edited in that window). To edit an existing item, click on the required item in the list on the left of the window. Note: Although Enterprise Architect does not currently provide detailed reports on metrics within a model, you can use the Automation Interface 1635 or similar tools to create your own custom reports based on metric information you enter;
838
Use to Confirm the name of the root package for which resourcing is being determined. Change the (optional) name of a specific resource assigned to the project. Select the date to run the resource report for. Set the percentage complete limit to include or exclude resource details; see Show Where. Show resourcing where percentage complete is Complete, Above the cut-off, Below the cut-off, or any of these three. Refresh the form. (Click on an entry in the report.) Find the selected element from the results list in the Project Browser. Print the report. Review the list of resources that meet the search criteria.
Show Where
839
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 1635 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 Reference Data 820 options on the Tools menu.
819
and Import
840
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 1635 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 Reference Data 820 options on the Tools menu.
819
and Import
841
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 1635 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 Reference Data 820 options on the Tools menu.
819
and Import
842
9.4 Testing
Introduction to Testing
In addition to the integrated JUnit and NUnit testing 1037 capabilities, 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 843 Use the Test Details Dialog 844 .
Categories
Typically you create: Unit tests 845 for things that are being built, such as Classes and components Integration tests 845 to test how components work together System tests 846 to ensure the system meets business requirements Acceptance tests 847 to test user satisfaction, and Scenario tests 848 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 850 Move or Copy Tests Between Test Types 849 Import a Test from Other Elements 851 Import a Responsibility or Constraint as a Test Create a Maintenance Item from a Test 853 Generate Test Details Report 853 Show Test Script Compartments 854 Create Test Documentation 855 .
852
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 1410 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.
843
This window can be docked to the application workspace. Click on an existing item to edit the details, or click on the New icon in the Testing window toolbar to add further items. Alternatively, use the Test details 844 dialog. There are five tabs along the base of the window; one for each of the following types of testing: Unit testing 845 Integration testing 845 System testing 846 Acceptance testing 847 Scenario testing 848 .
The asterisks on the tabs indicate that there is saved information to be viewed on the tab. If there is no information on the tab, or the information has not been saved, no asterisk is shown.
844
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 Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there.
845
Use to Specify the name of the test. Click on the drop-down arrow and select the current status of the test. Click on the drop-down arrow and select the type of test. Click on the drop-down arrow and select the name of the person who ran the test. Click on the drop-down arrow and select the name of the person who checked the test run. Click on the drop-down arrow and select the date on which the test was last run. Type a description of the test. You can format the text using the Rich Text Notes toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Type in the input data.
139
Input
Acceptance Criteria Type the acceptance or test success conditions. Results Type the results of the last test.
846
Use to Specify the name of the test. Click on the drop-down arrow and select the current status of the test. Click on the drop-down arrow and select the type of test. Click on the drop-down arrow and select the name of the person who ran the test. Click on the drop-down arrow and select the name of the person who checked the test run. Click on the drop-down arrow and select the date on which the test was last run. Type a description of the test. You can format the text using the Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Type in the input data. Type the acceptance or test success conditions. Type the results of the last test.
847
Use to Specify the name of the test. Click on the drop-down arrow and select the current status of the test. Click on the drop-down arrow and select the type of test. Click on the drop-down arrow and select the name of the person who ran the test. Click on the drop-down arrow and select the name of the person who checked the test run. Click on the drop-down arrow and select the date on which the test was last run. Type a description of the test. You can format the text using the Rich Text Notes toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Type in the input data. Type the acceptance or test success conditions. Type the results of the last test.
139
848
Use to Specify the name of the test. Click on the drop-down arrow and select the current status of the test. Click on the drop-down arrow and select the type of test. Click on the drop-down arrow and select the name of the person who ran the test. Click on the drop-down arrow and select the name of the person who checked the test run. Click on the drop-down arrow and select the date on which the test was last run. Type a description of the test. You can format the text using the Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Type in the input data.
Input
Acceptance Criteria Type the acceptance or test success conditions. Results Type the results of the last test.
849
Use to Specify the name of the test. Click on the drop-down arrow and select the current status of the test. Click on the drop-down arrow and select the type of test. Click on the drop-down arrow and select the name of the person who ran the test. Click on the drop-down arrow and select the name of the person who checked the test run. Click on the drop-down arrow and select the date on which the test was last run. Type a description of the test. You can format the text using the Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Type in the input data. Type the acceptance or test success conditions. Type the results of the last test.
and select the tab that contains the test you want to move or copy.
2. In the left-hand panel of the window, right-click on the required test item. The item context menu displays. 3. Click on the appropriate option - Move to or Copy to. A list of test categories displays. 4. Click on the test category to which to move or copy the test. A confirmatory prompt displays. Note: If you move or copy a test into the Scenario category, some unassociated data could be lost. 5. Click on the Yes button to confirm the move or copy. 6. Click on the target tab to ensure that the test has been added, and make any required changes.
850
3. Select the scenarios to import from the Select items to import list. You can import scenarios from any element in the model by clicking on the Select element drop-down arrow and selecting the required element. 4. Click on the OK button to import the selected scenario(s). The Import Scenario dialog has the following additional options: Option Show related elements only Limit selection to these Object Types only Refresh Use to Filter selection to apply only to related elements. Type in specific element types, separated by commas, to filter for only those element types. Refresh the list of available scenarios.
851
1. Select the View | Testing menu option to display the Testing window 843 . Open a diagram and select the parent package element or an element in the package; all of the test scripts for that element display in the Testing window. Click on the Scenario tab, at the bottom of the window. 2. Right-click on the list of tests to display the context menu, and select the Import Package Scenario(s) menu option. The Import Scenario dialog displays.
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. 3. 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. 4. 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. Select the View | Testing menu option to display the Testing window. Open a diagram and select the required element; all of the test scripts for that element display in the Testing window. 2. Right-click on the list of test cases to display the context menu, and select the Import Tests from Other Element menu option. The Import Element Tests dialog displays.
852
3. Select the test to import from the Select items to import list. You can import tests from any element in the model by clicking on the Select element drop-down arrow and selecting the required element. 4. Click on the OK button to import the selected test(s). The Import Element Tests dialog has the following additional options: Option Show related elements only Limit Selection to these Object Types only Refresh Use to Filter selection to apply only to related elements. Type in specific element types, separated by commas, to filter for only those element types. Refresh available options.
and select the tab into which you want to import the test item.
2. In the left-hand panel of the window, right-click anywhere. The context menu displays. 3. Click on the appropriate option, either: Import element constraint(s) or Import element requirement(s). The Import Constraint or Import Requirements dialog displays (the two dialogs are identical):
853
The dialog lists all of the internal requirements or constraints in the selected element. 4. 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. 5. Edit the items to complete their definition as tests.
3. Click on the OK button to clear the message. 4. Open the Maintenance window and select the Defects tab. Notice that the window displays a defect item having the same name as the test, and the test Description, Input, Acceptance Criteria and Results texts are displayed in the defect Description tab. 5. Update the defect item as required 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.
858 .
854
The Testing Details dialog includes the following options: Options Run By Checked By Test Type Status Locate Object Refresh Print Use to Select a name to filter for tests run by that person. Click on the x button to clear the field. Select a name to filter for tests checked by that person. Click on the x button to clear the field. Select the radio button for the required test type. Select the radio button for the required status. (After clicking on an element in the Test Details list) locate the element in the Project Browser. Re-run the report query. Print a summary of the test results.
855
3. In the Show Compartments panel, select the Testing checkbox. 4. Click on the OK button to save the setting. The tests now appear as an item in the test scripts compartment of the diagram element.
856
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.
857
9.5 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 862 topic; for tasks that apply to the whole system, see the Project Tasks 866 topic. The following topics explain how to create and edit Maintenance items: The Maintenance Workspace 857 - describes the Maintenance window Maintenance Item Properties 858 - describes how to complete the Maintenance window tabs for the various maintenance items Move or Copy Maintenance Items 859 - describes how to move items between maintenance categories or generate items from an item in a different category Create Elements From Maintenance Items 859 - describes how to generate elements from maintenance items Show Maintenance Script in Diagram 860 - describes how to display maintenance items in elements on diagrams Insert Maintenance Feature 419 - describes how to add a maintenance item directly to an element via inplace editing.
858
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 (as on the Changes tab), there is no asterisk. Using the toolbar, you can add or delete 858 items and show or hide the Properties window to enable you to edit 858 each item in the list. You can also display the maintenance items in a compartment 860 of each appropriate element in a diagram.
topic. For
Element defect details are recorded via the Defects tab. To access this tab, follow the steps below: 1. Select the View | Maintenance menu option. The Maintenance window displays. (If the window does not have the format shown below, click on the Show/Hide Properties button in the Maintenance window toolbar.)
2. Open a diagram and select an element. All of the maintenance entries for that element are shown in the Maintenance window, under the various tabbed sections. 3. Click on the Defects tab. 4. To: Add a new item, click on a blank line in the Defect list and complete the fields as described in the
1998-2009 Sparx Systems Pty Ltd
859
table below Modify an existing item, click on that item in the Defect list and edit the fields as described in the table below Delete an existing item, right-click on the item in the Defect list and select the Delete context menu option. 5. Click on the Save button in the window toolbar. Complete or edit the following fields on the Maintenance window: Option Defect Name Reported by Reported Status Resolved by Resolved Priority Version Description Use to Display a list of recorded defects associated with the element. Type the name or a short description of the defect. Select the name of the person who reported the defect. Select the date on which the defect was reported. Select the defect status, such as New or Complete. Select the name of the person who fixed the defect. Select the date on which the defect was resolved. Select the priority assigned to resolving the defect. Type the version number associated with this fix. Type a longer description of the defect. You can format the text using the Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there. Enter any notes or references to previous occurrences of this defect. You can format the text using the Rich Text Notes 139 toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there.
History
and select the tab that contains the item you want to move or copy.
2. In the left-hand panel of the window, right-click on the required maintenance item. The item context menu displays. 3. Click on the appropriate option - Move to or Copy to. A list of maintenance categories displays. 4. Click on the category to which to move or copy the item. A confirmatory prompt displays. 5. Click on the Yes button to confirm the move or copy. 6. Click on the target tab to ensure that the item has been added, and make any required changes.
860
2. Right-click on the required item in the list, and select the Create Element context menu option. The New Element 348 dialog displays. 3. In the Name field, type a name for the new element. 4. In the Type field, click on the drop-down arrow and select the required element type. For example, you might create an Issue element for a Defect or Issue maintenance item, a Change element for a Change item, or an Action for a Task item. 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 current 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.
in a diagram. To
3. In the Show Compartments panel, select the Maintenance checkbox. 4. Click on the OK button to save the setting. The maintenance Items now appear as items in the maintenance scripts compartment of the diagram element.
861
862
Enterprise Architect enables you to generate and handle issues in much the same way as you can handle and color code 577 Requirements. See the Requirements Management 569 topic for more information. You can link Issues using Realization 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 230 page.
page
114
863
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.6.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 577 Requirements. See the Requirements Management 569 topic for more information. 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 230 page.
864
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.
865
866
The Project Tasks List is a convenient 'To Do' list of major project work items that are not recorded elsewhere. It can also be used to track things like requests or meetings. The Project Tasks List is available as a tab on the System window. To open the System window, select the View | System menu option, or press [Alt]+[2]. Select the Project Tasks tab.
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 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 Reference Data 820 options on the Tools menu.
819 866
topic.
and Import
Modify
867
and
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.
867
2. Enter the details for the task. You can define the following: The task name Auto counters 348 - 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 The task priority: high, medium or low The expected total time for the task and the actual time expended The percent complete The phase associated with this task. 3. Click on the Apply button. 4. To create another entry, click on the New button, or to close, click on the OK button.
Modify a Task
To modify a task, on the Project Tasks tab, either:
868
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.
869
Any identified issues can be recorded against the current project. Issues are raised with a description, date, owner and status. Note: You can transport these issue definitions between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
You can add, delete and modify 872 Issues using either the Project Issues 869 dialog, or the Issue Detail 871 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 872 dialog or the Project Issues 872 tab. Tip: You can view sample report output in the Report Output Sample
873
topic.
870
871
To add 872 a new issue, double-click on an empty row of the Project Issues tab. To modify double-click on the required item in the list. In each case, the Issue Detail dialog displays.
872 an
issue,
872
872
872
871
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.
topic.
873
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
873
topic.
Resolution
Closed: 24/07/2007 Geoffrey Sparks The machines will be built and delivered using standard memory and the proprietary memory will be added later. All performance tests will be delayed until the memory is available. Open: 24/07/2007
Public Holidays
24/07/2007 Joanna The schedule includes staff Stoat working on public holidays. A number of staff have indicated that contrary to what they stated earlier they are not available. 24/07/2007 Eloise A number of the developers Under Review: Norman have downloaded different 24/07/2007 versions of a number of the compilers. This has lead to unpredictable builds impacting on testing.
874
The glossary enables you to set up a list of defined terms for your project. You can further divide the items by category; for example, Business terms and Technical terms. The glossary can be saved in Rich Text format for inclusion as part of a larger project document. You can add, delete and modify the project glossary entries through the Glossary Project Glossary 875 tab on the System window. Tip: Include a Glossary Report Note: You can transport these glossary definitions between models, using the Export Reference Data Import Reference Data 820 options on the Tools menu.
819 877 874
and
875
Option Glossary Term Glossary Type Description Limit Display To Type | Term Report
Use to Type the term to include in the glossary. Select either Technical or Business. Type the definition or description of the term. Select the appropriate radio button to filter the list of entries on the dialog to show Technical or Functional entries, or both. Review the list of defined glossary terms. Print a glossary report.
876
Double-click on an entry and use the Glossary Detail dialog to add 876 , modify 877 , filter 877 and delete 877 glossary entries (as below). Alternatively, select the Project | Documentation | Glossary menu option and use the Glossary 874 dialog. Tip: Include a Glossary Report
877
2. Enter the details for the glossary item: the Term, Type and Meaning. 3. Click on the Apply button. 4. To create another entry, click on the New button.
1998-2009 Sparx Systems Pty Ltd
877
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.
3. Enter a filename and a heading for the glossary. 4. Select whether to include all sections, or only the Technical or Business sections. 5. To include page breaks, select the Page break between sections checkbox.
878
6. Click on the OK button to generate the report. 7. Click on the View button to open the report. Note: You can view sample report output in the Glossary Report Output Sample
878
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.
879
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.
880
You can bookmark a selected element in a diagram manually by pressing [Shift]+[Spacebar]. You clear the bookmark by pressing [Shift]+[Spacebar] again.
This dialog enables you to automatically bookmark elements that have new changes or defects defined in the Maintenance 857 window, or test scripts defined in the Testing 843 window. This is useful to highlight elements that have additional project information. You can click on the Clear All button to clear all elements in the current tree of bookmarks. You should reload the project to show the new or cleared bookmarks ([Ctrl]+[Shift]+[F11]).
Part
Code Engineering |
882
10 Code Engineering
Code 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 1041 , namely XML Schema (XSD) and Web Service Definition Language (WSDL) Database schema 1071 , keys, triggers, constraints, RI and other relational database features, for and from a range of database products. Code 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 892 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 921 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 183 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 437 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 State Machine diagrams Interaction diagrams Activity diagrams. The Code Template Framework (CTF) 937 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 (this is discussed in SDK for Enterprise Architect) 1467 . You can link the facilities of Enterprise Architect to other development environments. The MDG Link for Eclipse and MDG Link for Visual Studio.NET 889 are standalone products that provide an enhanced code engineering functionality between Enterprise Architect and the development environments.
898
paradigms:
Reverse Engineering
Reverse Engineering 884 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/.
883
Code Engineering |
Synchronization
Synchronization 890 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 944 used when generating and reverse engineering the languages you use.
884
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. 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 preexisting 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 885 , which can be a single directory or a directory structure 888 . Several options are available when performing the reverse engineering process. The Source Code Engineering Options 911 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 339 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. ActionScript 945 Ada 2005 946 (Systems Engineering and Ultimate editions) C 947 C# 949 C++ 951 Delphi 954 Java 955 PHP 956 Python 957 SystemC 957 (Systems Engineering and Ultimate editions) Verilog 960 (Systems Engineering and Ultimate editions) VHDL 961 (Systems Engineering and Ultimate editions)
1998-2009 Sparx Systems Pty Ltd
Enterprise Architect currently supports reverse engineering in the following programming languages:
885
958
Enterprise Architect is also able to reverse engineer certain types of binary files: Java .jar files and .NET PE files. See Import Binary Module 889 for more information. Notes: Reverse Engineering of other languages is currently available through the use of MDG Technologies from www.sparxsystems.com/resources/mdg_tech/. 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 755 permission to reverse engineer source code and synchronize model elements against code.
to import.
4. Click on the Open button to start the import process. As the import proceeds, Enterprise Architect provides progress information. When all files are imported, Enterprise Architect makes a second pass to resolve associations and inheritance relationships between the imported Classes.
886
887
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 .
923
Enterprise Architect does not expand macros that have been used, these must be added into the internal list of Language Macros 918 .
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 925 . When it finds the implementation file it can use it to resolve parameter
1998-2009 Sparx Systems Pty Ltd
887
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 918 .
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.
888
3. Select the options you require. You can configure: The source directory The source type The file extensions to look at Whether to recurse sub directories Whether to create a diagram for each package Whether to import additional files as described in the Import Component Types dialog Whether to exclude private members from libraries being imported from the model Whether to create a package for every directory, namespace or file; this might be restricted depending on the source type selected Whether to Synchronize or Overwrite existing Classes when found (if a model Class is found matching the one in code, Synchronize updates the model Class to include the details from the one in code, which preserves information not represented in code such as the location of Classes in diagrams; Overwrite deletes the model Class and generates a new one from code, which deletes and does not replace the additional information) How to handle Classes not found during the import (Prompt for action enables you to review Classes individually 890 ) What is shown on diagrams created by the import. 4. Click on the OK button to start.
889
Currently the permitted types are as follows: Java Archive (.jar) .Net PE file (.exe, .dll); native Windows DLL and EXE files are not supported, only PE files containing .NET assembly data Intermediate Language file (.il). Enterprise Architect creates the necessary packages and diagrams during the import process. Selecting the Do not import private members checkbox excludes private members from libraries from being imported into the model. When importing .Net files,you can import via reflection or via disassembly, or let Enterprise Architect decide the best method - this might result in both types being used. The reflection-based importer relies on a .Net program, and requires the .Net runtime environment to be installed. The disassembler-based importer relies on a native Windows program called Ildasm.exe, which is a tool provided with the MS .Net SDK. The SDK can be downloaded from the Microsoft website. A choice of import methods is available because some files are not compatible with reflection (such as mscorlib.dll) and can only be opened using the disassembler. However, the reflection-based importer is generally much faster. You can also configure: Whether to Synchronize or Overwrite existing Classes when found (if a model Class is found matching the one in the file, Synchronize updates the model Class to include the details from the one in the file, which preserves information not represented in the file such as the location of Classes in diagrams; Overwrite deletes the model Class and generates a new one from the file, which deletes and does not replace the additional information) Whether to create a diagram for each package What is shown on diagrams created by the import.
890
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 Link for Eclipse can be downloaded from www.sparxsystems.com/products/ mdg_eclipse.html and MDG Link for Visual Studio.NET can be downloaded from www.sparxsystems.com/ products/mdg_vs.html.
By default, all Classes are marked for deletion. To keep one or more Classes, select them and click on the Ignore button.
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.
891
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 755 permission to synchronize source code with model elements.
892
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 897 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 922 C 923 C# 924 (for both .NET 1.1 and .NET 2.0) C++ 925 (standard, plus .NET managed C++ extensions) Delphi 926 Java 929 (including Java 1.5, Aspects and Generics) PHP 930 Python 930 Visual Basic 934 Visual Basic .NET 932
The Code Template Framework (CTF) 937 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 755 permission to generate source code.
Tasks
When you generate code, you perform one or more of the following tasks: Generate a Single Class
893
893
Generate a Group of Classes 894 Generate a Package 895 Update Package Contents 896
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.
894
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 183 /editor for each language type first. You can also set up the default editor on the DDL page of the Options dialog (Tools | Options | Source Code Engineering | Code Editors).
895
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. 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:
896
Option Root Package Synchronize Auto Generate Files Root Directory Retain Existing File Paths
Use to Check the name of the package to be generated. Select options that specify how existing files should be generated. Specify whether Enterprise Architect should automatically generate file names and directories, based on the package hierarchy. If Auto Generate Files is selected, display the path under which the generated directory structures are created. If Auto Generate Files is selected, specify whether to use existing file paths associated with Classes. If unselected, Enterprise Architect generates Classes to automatically determined paths, regardless of whether source files are already associated with Classes. 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 subpackages. 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. Mark all Classes in the list as selected. Mark all Classes in the list as unselected. Start the generation of all selected Classes. 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.
1998-2009 Sparx Systems Pty Ltd
897
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.
10.2.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.
898
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 898 (SW & HW) Interaction (Sequence) diagrams 905 (SW) Activity diagrams 906 (SW). You can generate code in various software and hardware VB.Net, VHDL, Verilog and SystemC.
902
To experiment with code generation from these diagrams, use the EAExample project provided with your Enterprise Architect installer.
899
Note: To be able to generate code from behavioral models, all behavioral constructs should be contained within a Class. A State Machine 1252 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
899
to display an example of Java code generated from the State Machine diagram above.
900
private boolean transcend; private StateType ProcessOrder_history; private void processOrder_Delivered(CommandType command) { switch(command) { case Do: { // Do Behaviors.. setStatus(Delivered); // State's Transitions if((status==Delivered)) { nextState = StateType.ProcessOrder_Closed; currTransition = TransitionType.ProcessOrder_Delivered_to_ProcessOrder_Closed; } break; } default: { break; } } } private void processOrder_Packed(CommandType command) { switch(command) { case Do: { // Do Behaviors.. setStatus(Packed); // State's Transitions nextState = StateType.ProcessOrder_Dispatched; break; } default: { break; } } } private void processOrder_Closed(CommandType command) { switch(command) { case Do: { // Do Behaviors.. // State's Transitions break; } default: { break; } } } private void processOrder_Dispatched(CommandType command) { switch(command) { case Do: { // Do Behaviors.. setStatus(Dispatched); // State's Transitions nextState = StateType.ProcessOrder_Delivered; break; } default: { break; 1998-2009 Sparx Systems Pty Ltd
901
} } } private void processOrder_New(CommandType command) { switch(command) { case Do: { // Do Behaviors.. setStatus(new); // State's Transitions nextState = StateType.ProcessOrder_Packed; break; } default: { break; } } } private void StatesProc(StateType currState, CommandType command) { switch(currState) { case ProcessOrder_Delivered: { processOrder_Delivered(command); 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;
902
} private void runStateMachine() { while(true) { if ( currState == StateType.ST_NOSTATE ) { break ; } 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 ; } } }
903
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
Trigger Type
Language
904
A Dependency relationship from the Port to the associated trigger should be used to signify their association. See Also: State Diagram 1252 Transition 1452 SW Code Generation - State Machine Diagrams
898 .
Note: The current code generation engine supports only one clock trigger for a component.
905
The above diagram contains: A Combined Fragment 1330 (alt ), which is identified as an Action If An Interaction Occurrence 1352 , which is identified as an Action Call with all argument information associated with it, and A message (Action Opaque). The Java code generated from this diagram resembles the following:
public void newTransaction() { // behavior is an Interaction if (bValidUser) // Alt combined fragment { placeOrder(101); //Interaction Occurrence } else
906
{ return; } }
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.
907
The Java code that might be generated from this diagram is as follows:
public boolean doValidateUser(String Password,String UserName) { loadAccountDetails(); boolean bRet; if (Username==name) { if (Password == password) { bRet = true; bValidUser = true; } else { bRet = false; } } else {
908
public void doMarkAccountClosed() { doValidateUser(password,name); if (bValiduser) { setClosed(true); } else { System.out.println("Invalid user"); } return; }
909
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.
public void doCheckForOutstandingOrders() { if (status != closed) { initializeStateMachine(); while (status != closed) { runStateMachine(); } } else
910
911
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 911 Local Paths 917 Local Path Dialog 917 Language Macros 918 Setting Collection Classes
919
These options are accessed the Source Code Engineering page of the Options dialog (select the Tools | Options | Source Code Engineering menu option).
912
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 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).
912
913
For each extension you can specify: The element type to be created The stereotype to apply to these objects. Note: You can transport these import component types between models, using the Export Reference Data Import Reference Data 820 options on the Tools menu.
819
and
914
The options for the inbuilt editor are: Option Use inbuilt editor if no external editor set Show Line Numbers Enable Outlining Show Structure Tree Don't parse files larger than Use to Specify the editor for code in a language if no external editor is defined for that language. Show line numbers in the editor. Enable collapsible regions for standard languages. Show a tree with the results of parsing the open file (requires that the file is parsed successfully). Specify an upper limit on file size for parsing. Used to prevent performance decrease due to parsing very large files.
915
916
917
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.
All Classes generated and stored in the Enterprise Architect project are stored as:
%JAVA_SOURCE%\<xxx.java>.
Now, Enterprise Architect stores all java files in these directories as:
%JAVA_SOURCE%\<filename>
On each developer's machine, the filename is expanded to the correct local version.
The Local Paths dialog enables you to define: Path - the local directory in the file system (for example, d:\java\source) ID - the shared ID that is substituted for the Local Path (for example, JAVA_SRC) Type - the language type (for example, Java).
918
And also to: Apply Path - Select a path and click on this button to update any existing paths in the model (with full path names) to the shared relative path name (so d:\java\source\main.java might become %JAVA_SRC%\main.java) Expand Path - The opposite of Apply Path. This enables you to remove a relative path and substitute the full path name. Using the two options you can update and change existing paths. Note: You can also set up a hyperlink 1403 on a diagram to access the Local Paths dialog, to switch, update or expand your current Local Path.
Define a Macro
1. Select the Settings | Preprocessor Macros menu option. The Language Macros dialog displays.
2. Click on the Add New button. 3. Enter details for your macro. 4. Click on the OK button.
919
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.
where the ^ symbol represents the body of the macro. This enables skipping from one macro to another. Note: The spaces surrounding the ^ symbol are required. Function Macros
RTTI_EMULATION()
where Enterprise Architect skips over the token including everything inside the parentheses.
On this dialog, you can define: 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. 2. On the Detail tab of the Class Properties dialog (accessible from the right-click context menu of any Class), click on the Collection Classes button.
920
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.
921
922
923
10.4.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.
924
10.4.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.
925
926
927
927
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.
928
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.
929
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.
930
931
932
933
934
935
Generate Namespaces Option to generate namespaces or not Shown if the technology supports namespaces Saved once for all projects. Default Source Directory The default directory to save generated source files Always shown Saved once for all projects. Editor The editor that is loaded to edit the source files Always shown Saved once for all projects. Att Type Default type for attributes Always shown Saved once for all projects.
These options are set in the technology inside the <CodeOptions> tag of a code module, as follows:
<CodeOption name="DefaultExtension">.rb</CodeOption>
936
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.
3. Reset the required defaults for each existing Class. 4. Click on the OK button to apply changes.
937
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 937 which are built into Enterprise Architect for forward engineering supported languages A Code Template Editor 940 for creating and maintaining user-defined Code Templates (also see SDK for Enterprise Architect 1467 ) 1467 Code templates to synchronize code 942 .
The above template simply refers to three other templates, namely ClassNotes, ClassDeclaration and ClassBody. The enclosing percent (%) signs indicate a macro. Code Templates consist of various types of macros, each resulting in a substitution in the generated output. For a language such as C++, the result of processing the above template might be:
/** * This is an example class note generated using code templates * @author Sparx Systems */ class ClassA: public ClassB { ... }
938
specialized template is executed. Otherwise the default implementation of the base template is used. Templates are processed sequentially, line by line, replacing each macro with its underlying text value from the model.
Namespace
939
Description Used by the Operation template to generate documentation for an operation. Used by the Operation Declaration template to generate parameters.
The second table lists templates used for generating code for languages that have separate interface and implementation sections. Template Class Impl Class Body Impl File Impl File Notes Impl Import Section Impl Operation Impl Operation Body Impl Operation Declaration Impl Operation Notes Impl Description A top-level template for generating the implementation of a Class. Used by the Class Impl template to generate the implementation of Class members. A top-level template for generating the implementation file. Used by the File Impl template to generate notes in the source file. Used by the File Impl template to generate external dependencies. A top-level template for generating operations from a UML Class's operations. Used by the Operation template to generate the body of a UML operation. Used by the Operation template to generate the operation declaration. 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.
940
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.
941
Use to Select the programming language. Display the Programming Languages Datatypes 817 dialog, which enables you to include programming languages other than those supported for Enterprise Architect, for which to create or edit code templates. Display the contents of the active template, and provides the editor for modifying 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. List the stereotyped templates, for the active base template. The Modified field indicates whether you have modified a default stereotyped template.
Template Templates
Stereotype Overrides
Add New Custom Template Add New Stereotyped Override Get Default Template
Invoke a dialog for adding a stereotyped template, for the currently selected base template. Update the editor display with the default version of the active template.
942
Use to Overwrite the active templates with the contents of the editor. 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 SDK for Enterprise Architect 1579 . 1579 Note: User-modified and user-defined Code Templates can be imported and exported as Reference Data (see the Import and Export Reference Data 818 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.
Only a subset of the code templates are used during synchronization. This subset corresponds to the distinct sections that Enterprise Architect recognizes in the source code. The following table lists the code templates and their corresponding code sections, which can be synchronized. Code Template Class Notes Class Declaration Attribute Notes Attribute Declaration Operation Notes Operation Notes Impl Operation Declaration Operation Declaration Impl Operation Body Operation Body Impl Code Section Comments preceding Class declaration. Up to and including Class parents. Comments preceding Attribute declaration. Up to and including terminating character. Comments preceding operation declaration. As for Operation Notes. Up to and including terminating character. Up to and including terminating character. Everything between and including the braces. As for Operation Body.
Three types of change can occur in the source when it is synchronized with the UML model: Synchronize Existing Sections 943 : for example, changing the return type in an operation declaration Add New Sections to Existing Features 943 : for example, adding notes to a Class declaration, where there were previously none
1998-2009 Sparx Systems Pty Ltd
943
943 :
Each of these changes must be handled differently by Enterprise Architect; their effect on the CTF is described in the linked topics above.
Now assume you add an inheritance relationship from Class A to Class C; the entire Class declaration would be replaced with something like:
[asm] class A: public B, public C
Assume Class A from the previous example had no note when you originally generated the code. Now assume that you specify a note in the model for Class A. Enterprise Architect attempts to add the new note from the model during synchronization. It does this by executing the Class Notes template. To make room for the new section to be inserted, you can specify how much white space to append to the section via synchronization macros. These macros are described in SDK for Enterprise Architect 1467 .
944
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 945 Ada 2005 946 (for Systems Engineering and Ultimate editions of Enterprise Architect) C 947 C# 949 C++ 951 Delphi 954 Java 955 PHP 956 Python 957 System C 957 VB.Net 958 Verilog 960 VHDL 961 Visual Basic 962
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 (~).
945
Stereotypes
Stereotype literal property get property set Applies To Operation Operation Operation Corresponds To A literal method referred to by a variable. A read property. A write property.
Tagged Values
Tag attribute_name dynamic final intrinsic namespace override prototype rest Applies To Operation with stereotype property get or property set Class or Interface ActionScript 3: Operation ActionScript 2: Class ActionScript 3: Class, Interface, Attribute, Operation ActionScript 3: Operation ActionScript 3: Attribute ActionScript 3: Parameter Corresponds To The name of the variable behind this property. The dynamic keyword. The final keyword. The intrinsic keyword The namespace of the current element. The override keyword. The prototype keyword. The rest parameter ( ... ).
Common Conventions
Package qualifiers (ActionScript 2) and Packages (ActionScript 3) are generated when the current package is not a namespace root 897 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 885 Generate Source Code 892 ActionScript Options 922
946
Stereotypes
Stereotype adaPackage adaProcedure delegate enumeration struct typedef Applies To Class Class Operation Inner Class Inner Class Inner Class Corresponds To A package specification in Ada 2005 without a tagged record. A procedure specification in Ada 2005. Access to a subprogram. An enum type. A record definition. A type definition, subtype definition, access type definition, renaming.
Tagged Values
Tag Discriminant IsAccess InstantiatedUnitTy pe PartType Type Applies To Corresponds To
Inner Class with stereotype typedef The type's discriminant. Parameter Determination of whether the parameter is an access variable.
Inner Class with stereotype typedef The instantiated unit's type (Package / Procedure / Function). Inner Class with stereotype typedef The part type (renames or new). 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 options 922 . 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. For example: HelloWorld.ads
package HelloWorld is type HelloWorld is tagged record Att1: Natural; Att3: Integer; end record; -- Public Functions function MyPublicFunction (P: HelloWorld) return String; 1998-2009 Sparx Systems Pty Ltd
947
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 885 Generate Source Code 892 Ada 2005 Options 922
10.6.3 C Conventions
Note: Separate conventions apply to Object Oriented programming in C
948 .
Enterprise Architect supports round trip engineering of C, where the following conventions are used:
Stereotype
Stereotype enumeration struct Applies To Inner Class Inner Class Attribute typedef union Inner Class Inner Class Attribute Corresponds To An enum type. A struct type. A keyword struct in variable definition. A typedef statement, where the parent is the original type name. A union type. A keyword union in variable definition.
948
Tagged Values
Tag anonymous bodyLocation Applies To Class also containing the Tagged Value typedef Operation Corresponds To The name of this class being defined only by the typedef statement. The location the method body is generated to. Expected values are header, classDec or classBody. This Class being defined in a typedef statement.
typedef
Stereotype
Stereotype enumeration struct Applies To Class Class Attribute typedef union Class Class Attribute Corresponds To An enum type. A struct type. A keyword struct in variable definition. A typedef statement, where the parent is the original type name. A union type. A keyword union in variable definition.
949
Tagged Values
Tag anonymous bodyLocation define typedef Applies To Class with stereotype of enumeration, struct or union. Operation Attribute Class with stereotype of enumeration, struct or union. Corresponds To The name of this Class being defined only by the typedef statement. The location the method body is generated to. Expected values are header, classDec or classBody. #define statement. This Class being defined in a typedef statement.
10.6.4 C# Conventions
Enterprise Architect supports the round trip engineering of C#, where the following conventions are used.
Stereotypes
Stereotype enumeration event extension indexer partial property Applies To Class Operation Operation Operation Operation Operation Corresponds To An enum type. An event. A Class extension method, represented in code by a this parameter in the signature. A property acting as an index for this Class. The partial keyword on an operation. A property possibly containing both read and write code.
950
Stereotype struct
Applies To Class
Tagged Values
Tag argumentName attributeName className const definition delegate enumType extern generic genericConstraints Implements ImplementsExplicit initializer new override params partial readonly sealed static unsafe virtual writeonly Applies To Operation with stereotype extension Operation with stereotype property or event Operation with stereotype extension Attribute Operation with stereotype partial Operation Operation with stereotype property Operation Operation Corresponds To The name given to the this parameter. The name of the variable behind this property or event. The Class that this method is being added to. The const keyword. Whether this is the declaration of the method, or the definition. The delegate keyword. The datatype that the property is represented as. The extern keyword. The generic parameters for this Operation.
Templated Class or Interface, The constraints on the generic parameters of this Operation with tag generic type or operation. Operation Operation Operation Class, Interface, Operation Operation Parameter Class, Interface Operation with stereotype property Operation Class Class, Interface, Operation Operation Operation with stereotype property The name of the method this implements, including the interface name. The presence of the source interface name in this method declaration. A constructor initialization list. The new keyword. The override keyword. A parameter list using the params keyword. The partial keyword. This property only defining read code. The sealed keyword. The static keyword. The unsafe keyword. The virtual keyword. This property only defining write code.
951
Other Conventions
Namespaces are generated for each package below a namespace root 897 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 885 Generate Source Code 892 C# Options 924
and C++/CLI
953
Stereotypes
Stereotype enumeration friend property get property set struct typedef union Applies To Class Operation Operation Operation Class Class Class Corresponds To An enum type. The friend keyword. A read property. A write property. A struct type. A typedef statement, where the parent is the original type name. A union type.
Tagged Values
Tag afx_msg anonymous attribute_name bitfield bodyLocation callback explicit initializer inline Applies To Operation Class also containing the Tagged Value typedef Corresponds To The afx_msg keyword. The name of this class being only defined by the typedef statement.
Operation with stereotype The name of the variable behind this property. property get or property set Attribute Operation Operation Operation Operation Operation The size, in bits, allowed for storage of this attribute. The exceptions that are thrown by this method. A reference to the CALLBACK macro. The explicit keyword. A constructor initialization list. The inline keyword and inline generation of the method
952
Tag
Applies To
Corresponds To body.
Attribute Operation
The location the method body is generated to. Expected values are header, classDec or classBody. The mutable keyword.
Class with stereotype other This Class being defined in a typedef statement. than typedef Class Operation The typedef name and/or fields of this type. The volatile keyword.
Other conventions
Namespaces are generated for each package below a namespace root 897 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 885 Generate Source Code 892 C++ Options 925
Stereotypes
Stereotype property property get property set reference value Applies To Operation Operation Operation Class Class Corresponds To The __property keyword. The __property keyword and a read property. The __property keyword and a write property. The __gc keyword. The __value keyword.
Tagged Values
Tag managedType Applies To Class with stereotype reference, value or enumeration; Interface Corresponds To The keyword used in declaration of this type. Expected values are class or struct.
953
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 885 Generate Source Code 892
Stereotypes
Stereotype event property reference value Applies To Operation Operation, Attribute Class Class Description Defines an event to provide access to the event handler for this Class. This is a property possibly containing both read and write code. Corresponds to the ref class or ref struct keyword. Corresponds to the value class or value struct keyword.
Tagged Values
Tag attribute_name generic genericConstraints initonly literal managedType Applies To Operation with stereotype property or event Operation Templated Class or Interface, Operation with tag generic Attribute Attribute Class with stereotype reference, value or enumeration; Interface Description The name of the variable behind this property or event. Defines the generic parameters for this Operation. Defines the constraints on the generic parameters for this Operation. Corresponds to the initonly keyword. Corresponds to the literal keyword. Corresponds to either the class or struct keyword.
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 885 Generate Source Code 892
954
Stereotypes
Stereotype constructor destructor dispinterface enumeration operator property get property set struct Applies To Operation Operation Class, Interface Class Operation Operation Operation Class Corresponds To A constructor. A destructor. A dispatch interface. An enumerated type. An operator. A read property. A write property. A record type.
Tagged Values
Tag attribute_name overload override packed property reintroduce Applies To Operation with stereotype property get or property set Operation Operation Class Class Operation Corresponds To The name of the variable behind this property. The overload keyword. The override keyword. The packed keyword. A property. See Delphi Properties information. The reintroduce keyword.
927
for more
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 885 Generate Source Code 892 Delphi Options 926
955
Stereotypes
Stereotype annotation enum enumeration operator property get property set static Applies To Interface Attributes within a Class stereotyped enumeration Class Operation Operation Operation Class or Interface Corresponds To An annotation type. An enumerated option, distinguished from other attributes that have no stereotype. An enum type. An operator. A read property. A write property. The static keyword.
Tagged Values
Tag annotations arguments attribute_name dynamic generic parameterList throws transient Applies To Anything Attribute with stereotype enum Operation with stereotype property get or property set Class or Interface Operation Parameter Operation Attribute Corresponds To The annotations on the current code feature. The arguments that apply to this enumerated value. The name of the variable behind this property. The dynamic keyword. The generic parameters to this operation. A parameter list with the ... syntax. The exceptions that are thrown by this method. The transient keyword.
Other Conventions
Package statements are generated when the current package is not a namespace root The Const property of an attribute or operation corresponds to the final keyword The Transient property of an attribute corresponds to the volatile keyword The Fixed property of a parameter corresponds to the final keyword.
897
See Also Import Source Code 885 Generate Source Code 892 Java Options 929
956
Stereotypes
Stereotype advice aspect pointcut Applies To Operation Class Operation Corresponds To A piece of advice in an AspectJ aspect. An AspectJ aspect. A pointcut in an AspectJ aspect.
Tagged Values
Tag className Applies To Corresponds To
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 885 Generate Source Code 892
Stereotypes
Stereotype property get property set Applies To Operation Operation Corresponds To A read property. A write property.
Tagged Values
Tag attribute_name final Applies To Operation with stereotype property get or property set Operations in PHP 5. Corresponds To The name of the variable behind this property. The final keyword.
Common Conventions
An unspecified type is modeled as var Methods returning a reference are generated by setting the Return Type to var* 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.
1998-2009 Sparx Systems Pty Ltd
957
See Also Import Source Code 885 Generate Source Code 892 PHP Options 930
Tagged values
Tag decorators Applies To Class, Operation Corresponds To 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 885 Generate Source Code 892 Python Options 930
Stereotypes
Stereotype delegate enumeration friend property sc_ctor sc_module sc_port sc_signal struct Applies To Method Inner Class Method Method Method Class Attribute Attribute Inner Class Corresponds To A delegate. An enum type. A friend method. A property definition. A SystemC constructor. A SystemC module. A port. A signal A struct or union.
Tagged Values
Tag kind mode overrides Applies To Attribute (Port) Attribute (Port) Method Corresponds To Port kind (clocked, fifo, master, slave, resolved, vector). Port mode (in, out, inout). The Inheritance list of a method declaration.
958
Tag throw
Applies To Method
Other Conventions
SystemC also inherits most of the stereotypes and Tagged Values of C++
951 .
931 .
Stereotypes
Stereotype event import module operator partial property Applies To Operation Operation Class Operation Operation Operation Corresponds To An event declaration. An operation to be imported from another library. A module. An operator overload definition. The partial keyword on an operation. A property possibly containing both read and write code.
959
Tagged Values
Tag Alias attribute_name Charset delegate enumTag Handles Implements Lib MustOverride Narrowing NotOverrideable Overloads Overrides parameterArray partial readonly shadows Shared Widening writeonly Applies To Operation with stereotype import Operation with stereotype property Operation with stereotype import Operation Operation with stereotype property Operation Operation Operation with stereotype import Operation Operation with stereotype operator Operation Operation Operation Parameter Class, Interface Operation with stereotype property Class, Interface, Operation Attribute Operation with stereotype operator Operation with stereotype property Corresponds To The alias for this imported operation. The name of the variable behind this property. The character set clause for this import. One of the values Ansi, Unicode or Auto. The Delegate keyword. The datatype that this property is represented as. The handles clause on this operation. The implements clause on this operation. The library this import comes from. The MustOverride keyword. The Narrowing keyword. The NotOverrideable keyword. The Overloads keyword. The Overrides keyword. A parameter list using the ParamArray keyword. The Partial keyword. This property only defining read code. The Shadows keyword. The Shared keyword. The Widening keyword. This property only defining write code.
Other Conventions
Namespaces are generated for each package below a namespace root 897 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 885 Generate Source Code 892 VB.Net Options 932
960
Stereotypes
Stereotype asynchronous enumeration initializer module part port synchronous Applies To Method Inner Class Method Class Attribute Attribute Method Corresponds To A concurrent process. An enum type. An initializer process. A module. A component instantiation. A port. A sequential process.
Tagged Values
Tag kind mode Portmap sensitivity type Applies To Attribute (signal) Attribute (port) Attribute (part) Method Attribute Corresponds To The signal kind (such as register, bus). The port mode (in, out, inout). The generic / port map of the component instantiated. The sensitivity list of a sequential process. The range or type value of an attribute.
961
Page
Item
See Also Import Source Code 885 Generate Source Code 892 Verilog Language Options.
932
Stereotypes
Stereotype architecture asynchronous configuration enumeration entity part port signal struct synchronous typedef Applies To Class Method Method Inner Class Interface Attribute Attribute Attribute Inner Class Method Inner Class Corresponds To An architecture. An asynchronous process. A configuration. An enum type. An entity. A component instantiation. A port. A signal declaration. A record definition. A synchronous process. A type or subtype definition.
Tagged Values
Tag isGeneric isSubType kind mode portmap sensitivity type typeNameSpace Applies To Attribute (port) Inner Class (typedef) Attribute (signal) Attribute (port) Attribute (part) Method (synchronous) Inner Class (typedef) Attribute (part) Corresponds To The port declaration in a generic interface. A subtype definition. The signal kind (such as register, bus). The port mode (in, out, inout, buffer, linkage). The generic / port map of the component instantiated. The sensitivity list of a synchronous process. The type indication of a type declaration. The type namespace of the instantiated component.
962
Stereotypes
Stereotype global import property get property set Applies To Attribute Operation Operation Operation Corresponds To The Global keyword. An operation to be imported from another library. A property get. A property set.
1998-2009 Sparx Systems Pty Ltd
963
Tagged Values
Tag Alias attribute_name Lib New Applies To Operation with stereotype import Corresponds To The alias for this imported operation.
Operation with stereotype property get The name of the variable behind this property. , property set or property let Operation with stereotype import Attribute The library this import comes from. The New keyword.
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 885 Generate Source Code 892 Visual Basic Options 934
Part
XI
965
The visual execution analyzer, or debug capability, is available in the Enterprise Architect Professional, Corporate, Business and Software Engineering, System Engineering and Ultimate editions. Enterprise Architect enables you to execute build 970 , test 971 , debug 973 , run 972 and deployment 979 scripts, all from within the Enterprise Architect development environment. Enterprise Architect provides developers with tools to integrate their UML development and modeling with their source development and compilation. With the ability to generate NUnit and JUnit test 1037 Classes from source Classes using MDA Transformations, and to integrate the test process directly into the Enterprise Architect IDE, you can now integrate UML and modeling into the build/test/execute/deploy process. In addition to build/test and execute functionality, Enterprise Architect includes debugging 986 capabilities for . NET, Java and Microsoft Native (C, C++ and Visual Basic) applications. The debuggers built into Enterprise Architect are specifically designed to enable the capture of stack trace information automatically or by stepping through code. The final stack trace history can then be used to generate Sequence diagrams within Enterprise Architect, converting the actual code execution and calls into visual diagrams. This capability provides an excellent means of managing complexity within a project, and of documenting existing code and ensuring that the code written performs as intended by the original architect/developer. The Build and Run menu is accessed from the Enterprise Architect Project menu or from the context menu of a package in the Project Browser. It enables you to create and store custom scripts 967 that specify how to build, test, run and deploy code associated with a package.
With the appropriate scripts set up Enterprise Architect can: Call a compiler to build your application, parse the compiler output and open the internal editor to the
966
location of errors and warnings given Call a unit testing program to run the defined unit tests and parse the output of JUnit or NUnit, and open the internal editor to failed tests Debug source code using a customizable interface appropriate to the programming language.
967
In Enterprise Architect, any package within the UML Model can be configured to act as the 'root' of a source code project. By setting compilation scripts, xUnit commands, debuggers and other configuration settings for a package, all contained source code and elements can be built, tested or debugged according to the currently active configuration. Each package can have multiple scripts, but only one is active at any one time. The Package Build Scripts dialog enables you to create and manage those scripts. To access the Package Build Scripts dialog, either: Press [Shift]+[F12] On the Debug Toolbar 1008 , click on the drop-down arrow on theScripts icon (the first icon on the left) and select the Package Build Scripts option Select the Project | Build and Run | Package Build Scripts menu option, or Right-click on a package in the Project Browser, and select the Build and Run | Package Build Scripts context menu option.
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 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 991 window is open ([Alt]+[8]) you can see which debugging configuration is available and selected, and which breakpoints are displayed, as you change packages in the Project Browser. To create a new script, click on the Add button; the Build Script dialog 968 displays. To modify an existing script, highlight the script name in the list and click on the Edit button.
968
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 (see the next topic, Managing Scripts 968 ). 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.
To edit a script, double-click on its name or highlight the script and click on the Edit button. The Build Script 968 dialog displays. To delete a script, highlight the script and click on the Delete button. Enterprise Architect prompts you to confirm the deletion. Click on the Yes button to continue and delete the script.
969
To use the tabs on this dialog, see the following topics: Build Command 970 Test Command 971 Run Command 972 Deploy Command 979 Debug Command 973 Sequence Tab Options.
980
970
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 | 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
917
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:
971
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.
972
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.
973
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.
The Debug tab of the Build and Run dialog enables you configure how to debug your application within Enterprise Architect. Details on how to complete the fields for a variety of debugging scenarios are provided in the following platform-specific topics: Java 975 .NET 977 Microsoft Native.
974
974
The script must specify two things to support debugging: The path to the executable Microsoft Native as the debugging platform.
975
11.1.6.2 Java
Use to 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 976 . Enter any run time variables below Type any required command line options to the Java Virtual Machine. 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 986 ). 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 blank.
976
or:
-agentpath:"c:\program files\sparx systems\ea\SSJavaProfiler75"
The example below is for attaching to the Tomcat Webserver. Select the Attach to process radio button, and then the keyword Attach is all that you have to enter. This keyword causes the debugger to prompt you for a process at runtime. Note: The Show Console checkbox has no effect when attaching to an existing virtual machine.
977
11.1.6.3 .NET
Option Application (Enter path) Enter any runtime variables below Show Console Use Debugger
Use to Select and enter either the full or the relative path to the application executable, followed by any command line arguments. Type any required command line options, if debugging a single .NET Assembly 977 . Create a console window for the debugger. Not applicable for attaching to a process. 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 978 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.
978
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.
where name is the name of your application. The version of the CLR you should specify should match the version loaded by the managed code invoked by the debuggee. Sample config file:
<configuration> <startup> <requiredRuntime version="version "/> </startup> </configuration>
where version is the version of the CLR targeted by your plugin or COM code. For further information, see http://www.msdn2.microsoft.com/en-us/library/9w519wzk.aspx.
979
Note: The path being built is displayed along with the exit code.
980
These options are not all available for each platform, as indicated in the following table: Option Enable Filter
980 982
.NET X X X X
1032
Java X X X X X
Native X X X X X X
Record arguments to function calls Record calls to external modules Record calls to dynamic modules
982 983
X
984
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.
981
To Filter All public functions having a name beginning with Get from the recording session (GetClientRect for example in Windows API). All methods beginning with Get for every Class member method. All methods beginning with Get from the Class CClass. All methods for Class CClass. All methods for Classes belonging to Standard Template and Active Template Libraries.
*::Get*
CClass::Get*
CClass::*
ATL* std*
CClass::GetName
In the Java example in the screen below, the debugger would exclude: Calls to OnDraw method for 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>).
In the Native code example below, the debugger would exclude: Calls made to Standard Template Library namespace Calls to any Class beginning with TOb Calls to any method of Class CLock Calls to any Global or Public Function with a name beginning with Get Calls to the method GetLocation for Class Ctrain.
982
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.
functions in modules that have a PDB file but for which there is no source.
983
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.
984
985
986
11.2 Debugging
Enterprise Architect enables debugging of source code within Enterprise Architect, using a debug interface appropriate to the source language. Debugging is configured by creating a debug script 973 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.
Prerequisites
Creation of a Package Build Script and configuration of the Debug command in that script. Note: Microsoft operating systems, Windows Vista and later - Currently, you can debug under these operating systems only if the User Account Control (UAC) 987 feature of the systems is turned off. This restriction will be removed at a future date.
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.
987
You can import native code into your model, and record the execution history for any Classes and methods. You can also generate Sequence diagrams from the resulting execution path. 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.
988
3. Select the Run as administrator checkbox. 4. Click on the OK button, and again on the Enterprise Architect Properties dialog.
To display the Debug window, either press [Alt]+[8] or select the View | Debug & Profile | Debugger menu option.
989
The second toolbar icon (the blue arrow) is the Run debugger button; if at least one script has been configured for the currently selected package (as identified in the Scripts folder), this button is enabled. If a script has not been created or is incomplete, all buttons are disabled and debugging remains unavailable. As Build Scripts 970 are linked to a package, selecting another package in the Project Browser also changes the active Build Script and, naturally, the target to be debugged. Breakpoints are recorded against the package also, and these update depending on which package is selected. You should set and enable breakpoints 992 before starting the debugger.
990
The blue arrow and pink highlight indicate the line of execution, halted at a breakpoint. When the debugger is at a breakpoint the other information is presented in the various windows related to the Debug window. For example, the Stack window 995 displays the stack frames for any thread at a breakpoint, and the Locals window 994 displays any variables within the scope of the thread's current stack frame.
991
The Scripts folder lists the scripts available for the currently-selected package, by default selecting the first in the list. If you want to execute a different script, select the appropriate checkbox. The Windows folder lists the other debug windows. Select the checkbox for each window you want to display in the work area. You can then dock and combine 173 the windows to suit your working requirements. The windows are briefly described below: Breakpoints 992 - 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 Locals 994 - shows the local variables defined in the current code segment, their type and value Watches 995 - shows the values of static and globally scoped expressions you have entered Stack 995 - 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 Recording History 997 - 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 Data Breakpoints 998 - shows local variables that have been marked as breakpoints; changes in the values of these variables causes a breakpoint in the debugger Output 1000 - displays output from the debugger including any messages output by debugged process, such as writes to standard output
992
Modules 1000 - displays all the modules loaded during a debug session Workbench 1001 - enables you to create your own variables and invoke methods Search 1006 - enables you to search for text in files. The Breakpoints, Recording Markers and Threads folders list the breakpoints, recording markers and threads in the selected package. Double-click on any of the items to locate the actual object in the code and highlight the line of code it marks.
11.2.2.1.1 Breakpoints
Breakpoints work in Enterprise Architect much like in any other debugger. Adding a breakpoint notifies the debugger to trap code execution at the point you have specified. When a breakpoint is encountered by a thread of the application being debugged, the source code is displayed in an editor window, and the line of code where the breakpoint occurred is highlighted. Selecting a different package in the project affects which breakpoints are displayed. 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 window (View | Debug & Profile | Breakpoints).
Breakpoints are also displayed in an abbreviated form in the Breakpoints folder on the Debug window ( [Alt]+[8]).
where: path = The default working directory specified in your Build Script
1998-2009 Sparx Systems Pty Ltd
993
prefix username
= =
Tree View Node Name / Package name Host system username of the Enterprise Architect user.
Breakpoint States
DEBUGGER STATE Running Bound Disabled Not bound - this usually means that the DLL is not yet loaded or was not built with debug information Failed - this usually means a break could not be set at this time, and can occur when the source file is newer or older than that used to build the application. Not running Enabled Disabled N/a N/a
Add Breakpoints
To set breakpoints for a code segment: 1. Open the model code to debug. 2. Find the appropriate code line and click in the left margin column. A solid red circle in the margin indicates that a breakpoint has been set at that position.
If the code is currently halted at a breakpoint, that point is indicated by a blue arrow next to the marker.
To disable a breakpoint, deselect its checkbox on the Breakpoints 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 (
994
11.2.2.1.2 Locals
Whenever a thread encounters a breakpoint its current stack 995 frame.
992 ,
this window displays all the local variables for the thread at
The value and the type of any in-scope variables are displayed in a tree, as shown in the following screen:
Local variables are displayed with colored box icons with the following meanings: Blue Green Pink Yellow Red Object with members Arrays Elemental types Parameters Workbench Instance
995
11.2.2.1.3 Watches
The Watches window is most useful for native code (C, C++, VB) where it can be used to evaluate data items that are not available as Local Variables 994 - items with module or file scope and static Class member items. You can also use the window to evaluate static Class member items in Java and .NET. To use the Watches window, click on it and press [Insert]. An edit window displays in which you can type the name of the variable to examine. 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 module in whose scope the item resides is currently loaded by the process being debugged. The names of the items to evaluate persist for the package, so the next time you debug the same project, the items evaluate automatically whenever a breakpoint occurs. If necessary, you can delete items using the right-click context menu options inside this window.
11.2.2.1.4 Stack
The stack view shows all currently running threads. A Stack trace is displayed whenever a thread is suspended, through one of the step actions or through encountering a breakpoint 992 . A green or yellow arrow highlights the current stack frame A blue arrow indicates a thread that is running A red arrow indicates a thread for which a stack trace history is being recorded Double-clicking a frame takes you to that line of code in the Source Code Editor; local variables are also refreshed for the selected frame.
996
Toolbar
- Save Stack to file - Generate Sequence diagram from Stack (as shown below) - Copy Stack to recording history - Stop recording
997
The columns in this window are as follows: Sequence - The unique sequence number Note: The checkbox against each number is used to control whether or not this call should be used to create a Sequence diagram from this history. In addition to enabling or disabling the call using the checkbox, you can use context menu options to enable or disable an entire call, all calls to a given method, or all calls to a given Class. Threads - The operating system thread ID Delta - The elapsed thread CPU time since the start of the sequence Method - There are two Method columns: the first shows the caller for a call or for a current frame if a return; the second shows the function called or function returning Direction - Stack Frame Movement, can be Call, Return, State, Breakpoint or Escape (Escape is used internally when producing a Sequence diagram, to mark the end of an iteration) Depth - The stack depth at the time of a call; used in the generation of Sequence diagrams State - The state between sequences Source - There are two Source columns: the first shows the source filename and line number of the caller for a call, or for a current frame if a return; the second shows the source filename and line number of the function called or function returning. Instance - There are two Instance columns; these columns only have values when the Sequence diagram produced contains State transitions. The values consist of two items separated by a comma - the first item
998
is a unique number for the instance of the Class that was captured, and the second is the actual instance of the Class. 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 save a sequence to an XML file, click on the sequence and on the toolbar Save button ( To access an existing sequence file, either:
).
Click on the toolbar Open icon ( ), or Right-click on a blank area of the screen and click on the Load Sequence From File context menu option. The Windows Open File dialog displays, from which you select the file to open. To generate a Sequence diagram from a sequence, click on the sequence and then on the toolbar Create Sequence Diagram icon ( ).
For example, in the following code, execution has halted at the highlighted line because the value of L has changed.
999
Data breakpoints can currently only be set by right-clicking on the variable in the Locals 994 window and selecting the Set Data Breakpoint context menu option. This means that in order to establish a data breakpoint you must first set a normal breakpoint 992 at a point in the code that presents the required scope of local variables to choose from.
To delete a data breakpoint from the Data Breakpoints window, right-click on it and select the Clear Data Breakpoint context menu option.
1000
11.2.2.1.7 Output
During a debug session the Debugger emits messages detailing both startup and termination of session, to its Output tab. Details of exceptions and any errors are also output to this tab. Any trace messages such as those output using Java System.out or .NET System.Diagnostics.Debug are also captured and displayed here.
11.2.2.1.8 Modules
The debugger Modules window lists the modules loaded by the process being debugged.
The columns on this window are described below: Column Path Modified Date Debug Symbols Use To Determine the file path of the loaded module. Determine the local file date and time the module was modified. 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). Check the validity of the symbol file; if the value is false, the symbol file is out of date. Determine the file path of the symbol file, which must be present for debugging to work. Determine the local file date and time the symbol file was created.
1001
11.2.2.1.9 Workbench
The Workbench is a tool in Enterprise Architect Debugging, enabling you to create your own variables 1002 and invoke methods 1003 on them. Stack trace can be recorded and Sequence diagrams produced from the invocation of such methods. It provides a quick and simple way to debug your code.
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 result of creating variables and the result of calls on their methods is displayed in the Debug Output window.
1002
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 Debug Tab topic).
973
Constraints (.NET)
Members defined as struct in managed code are not supported. Classes defined as internal are not supported.
1003
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. Note that all methods
1004
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.
1005
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
1006
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 1000 .
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.
1007
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.
The options, from left to right, are as follows: Option Search Path list box Use to Specify the folder to search. You can type the path to search directly into the text box, or click on the folder icon to select the path. Any paths you enter are automatically saved in the list, up to a maximum of ten; paths added after that overwrite the oldest path in the list. Specify the text to look for. You can type the text directly into the text box or click on the drop-down arrow to select from a previous entry in the list. The search text you enter is automatically saved in the list when you click on the Search button. The list box saves up to ten search queries. Search queries added after that overwrite the oldest query in the list. Search File Types list box Search button Limit the search to specific types of files. You can select multiple file types in a string, separated by either a comma or a semi-colon as shown in the image above. Begin the search. During the course of the search all other buttons in the toolbar are disabled. You can cancel the search at any time by clicking on the Search button again. Case Sensitivity button Word Match Toggle the case sensitivity of the search. The tooltip message identifies the current status of the button. Toggle between searching for any match and searching for only those matches that
1008
Option button SubFolder button Result View button Clear Results b utton Clear Search History button Help button
Use to form an entire word. The tooltip message identifies the current status of the 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. Select the presentation format of the search results - List View or Tree View format. Clear the results window. Remove all the entries in the Search Path, Search Text and Search File Types list boxes, if required. Display this Help topic.
You begin a debug session by clicking on the Run Debugger icon - the blue arrowhead. The toolbar icons then become activated. If the debugger finds a breakpoint, the toolbar appears as shown below:
During execution, the Pause/Resume button displays in blue. If you click on this button to pause execution, it displays in red as shown below:
From left to right the toolbar buttons are as follows: Debug/Build menu, which provides quick access to the following options: Debug - run the debugger Build - run package build scripts Test - run package test scripts Run - run debug Package Build Scripts - configure package build scripts Run Debugger [F6] Both initiates debugging and continues execution of a thread that has been halted by a breakpoint. Pause/Resume debug execution Enables you to temporarily halt execution of every thread in the process being debugged, or resume execution after it has been paused. Clicking on any button also resumes execution. The Pause button displays in red while execution is suspended. Note: Pausing execution undermines the validity of the stack trace and local variable information displayed in any of the debug windows; after pausing, this information should not be relied upon.
1009
Stop Debugger [Ctrl]+[Alt]+[F6] Terminates debugging. The debuggee process is immediately halted, and the debug platform closed. All debug output (local variables and stack) are cleared. The workbench is closed. Step Over [Alt]+[F6] Causes the debugger to run until the next physical line of code after the current line or, if no further line exists in the method, at the next line in the caller if the method has a caller; that is, the stack depth is greater than one. Step Through Is most useful while recording a debug session. The button initiates the same behaviour as the StepOver button, except that it records intermediate method calls made between lines. If you are recording and you click on the StepOver button, any method called between lines is not recorded. The Step Through button causes the debugger to step into any method executed at the current line, and any subsequent method called when the button is clicked. The debugger continues to step until it arrives back at the next line. Step In [Shift]+[F6] Instructs the debugger to try and step over every line of physical code that the thread is executing. However, the debugger ignores any call to a namespace, function class or method that does not exist in the model. That is, only code either generated within Enterprise Architect or imported into the model is executed. This restriction can be overridden by the package Sequence Recording Options 982 . Step Out [Ctrl]+[F6] Instructs the debugger to run until the current method exits and, if the method has a caller (stack depth > 1), to stop at the next line of code in the calling method. Show Execution Point Only enabled when a thread has encountered a breakpoint. The button displays the source code file in an editor window with the current line of code highlighted for the thread that has the current focus. (If only one thread is suspended, that thread has focus; otherwise, a thread has focus if it is selected in the Stack window. If no thread is selected, the first suspended thread has the focus.) Show/Hide lines during recording Disables (green tick) and enables (red cross) update of the editor window with the current line of executing source code. During automatic recording of a thread, time is spent updating the editors with the current line of executing code. To speed up execution in debugging larger applications, you can disable this highlighting in any editors. Even when Show lines... is enabled, during automatic recording 1026 between markers 1027 , the executing line is not displayed. Record Stack Trace Starts recording the trace history. Recording occurs for the currently suspended thread. The stack history is cleared ready to accept the new trace history.
1010
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:
1011
When you start the debugger (click on the Debug window displays.
988
1012
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 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.
992
1013
1014
Once Enterprise Architect is attached to the process, any breakpoints encountered are detected by the debugger and the information is available in the Debug windows. To detach from a process, click on the Debug Stop button.
3. Import source code into the Enterprise Architect Model, or synchronize existing code. to specify the Debug option for attaching to the process.
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 SSJavaProfiler65 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
So, for debugging to be successful, the CLASSPATH must contain the root path:
c:\source.
dialog, create a script for the code you have imported and
Select the Attach to process radio button, and in the field below type attach. In the Use Debugger field, click on the drop-down arrow and select Java.
1015
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 992 . Click on the Run Debugger
988
1016
Click on the OK button. A confirmation message displays in the Debug Output window process has been attached.
1000
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.
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.
1998-2009 Sparx Systems Pty Ltd
1017
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%; ) set JAVA_OPTS=%JAVA_OPTS% -agentpath:"c:\program files\sparx systems\ssjavaprofiler75"
configuration topic.
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;
1018
1019
3. In the Java Applet Runtime Settings panel, click on the View button. The Java Runtime Settings dialog displays.
1020
4. Click on the appropriate entry and click on the OK button to load the Sparx Systems Agent. 5. Import source code
885
890 .
973
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.
1022
Enterprise Architect takes the recorded stack history captured during one of these runs and automatically builds the Sequence diagram, including compacting looping sessions for easy reading. You can control aspects of the diagram generation by setting options on the Sequence tab 980 of the Build Script dialog, or after recording execution traces when the Generate Sequence Diagram 1030 dialog displays. If required, you can prepare your project and debugger to show State transitions Sequence diagrams. Before recording execution, you must set up your debugger successfully.
967
1032
in the generated
The following diagram illustrates the kind of diagram you can produce by carefully stepping through your running program or letting Enterprise Architect profile it automatically.
1021
1022
This menu option is enabled when a script has been configured method.
967
This is the most straightforward technique for creating a Sequence diagram. The debugger executes the application specified in the build script for the parent package, and when the selected method is encountered during execution, the debugger records all the activity from that point. When the method exits, the debugger stops and produces a diagram from the history for that method. If the method is not executed then no diagram is generated. Note: If the debugger is already running, the menu option is disabled (grayed). You must stop the debugger to re-enable the menu option.
1023
1024
1025
1026
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. When you have finished tracing, click on the Stop button ( Generate the diagram
1030
).
The Stack Trace History, Stack window and Source Code Editor dynamically update to reflect the current execution sequence for the thread. Note: No other threads are recorded, with the exception of entries for thread creation and termination.
1027
Stack Trace Recording ends when the thread ends, or when you click on the Stop button ( Generate the diagram.
1030
).
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:
1028
When the debugger is run it continues to run the thread, recording a stack history, until either the Stop marker is encountered or the thread terminates, unlike normal breakpoints where the debugger halts and displays the line of code.
1030
(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.
1029
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.
1030
1030
your results. To do this, click on the Generate Sequence Diagram button ( toolbar. The Generate Sequence Diagram dialog displays.
window
The dialog also displays automatically at the end of a debug recording session recording terminates or the program finishes. Complete the fields as follows: Option Name Use to
1026
Type in the diagram name; this field defaults to the name of the State Machine.
1031
Option
Use to
Include state information if Include any State transitions detected during the debug run in the Sequence diagram produced. available The checkbox is enabled only if the Capture State Transitions Using Constraint option 1033 has been enabled for the Package Script prior to debugging. Highlight invalid transitions Mark with a red border any state transitions detected that are illegal for the State Machine. The checkbox is enabled only if Include state information if available is selected. Click on the OK button. Your diagram and related artifacts are placed in an interaction under the package that is running your debug session.
1032
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
1998-2009 Sparx Systems Pty Ltd
1033
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. These procedures are explained in the subsequent sections, with reference to the following figure:
This figure shows the Class Painter with a State Machine called Compound. It has a child diagram also called Compound, on which the States {Grey,Lime,Olive...} are placed.
checkbox is selected.
1034
4. Click on the drop-down arrow and select the required constraint type to limit the states captured by the debugger to those having constraints of that type. If you select <any> then any state found for the Class-associated State Machine is included in recording.
Create States
The following illustration shows the States on the example State Machine Compound from the Class Painter, as shown in the Overview 1032 .
In order to evaluate a State for any object you must have a way to link the State to the Class of the object. You do this by adding constraints 1035 to the State. Each constraint is in effect a condition on member variables of the Class.
1035
The Painter Class has a member called Paint of type Ccolour. The Paint member has two member variables called primary and secondary. These variables are enums. The values of constraints can only be compared for elemental, enum and string types. In native code, equivalence of Class objects is only possible for pointer types. What this constraint means is: when an instance of the Painter Class exists and its member variable Paint's member variable primary has the enum value Blue and the member variable secondary has the enum value Green then this State is evaluated to true.
You can see the member variables for these constraints in the following illustration of the Class Painter, expanded to show members. Notice the enumeration TColor values. These are the values tested in the constraints in the State Properties dialog above.
1036
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 earlier example 1035 as:
Paint.primary=Blue OR Paint.secondary=Green
Note: Quotes around strings are optional. The comparison for strings is always case-sensitive in determining the truth of a constraint.
1037
Enterprise Architect supports integration with unit testing tools in order to make it easier to develop good quality software. Firstly, Enterprise Architect helps you to create test Classes with the JUnit 1134 and NUnit 1136 transformations. Then you can set up 1037 a test script 971 against any package and run 1038 it. Finally, all tests results are automatically recorded 1039 inside Enterprise Architect.
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
970
dialog as follows.
1038
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.
1039
This enables you to quickly find and fix the error. Enterprise Architect also records the run status of each test as described in Record Test Results
1039
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> Failed at 28-Jun-2006 8:45:36 AM expected: <0> but was: <2>
Part
XII
1041
XML Technologies |
12 XML Technologies
Enterprise Architect enables rapid modeling, forward engineering and reverse engineering of two key W3C 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.1 and XML provides the natural mechanism for specifying, constructing and deploying XML-based SOA artifacts within an organization. The following topics explain how to work with these technologies using Enterprise Architect. XML Schema (XSD) 1042 Web Services (WSDL) 1058
1042
Enterprise Architect supports Forward and Reverse engineering of W3C XML schemas (XSD). The following topics explain how to use Enterprise Architect to model, generate and import XML schemas: Model XSD 1042 Import XSD 1055 Generate XSD 1052
1043
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>
1044
<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>
The following topics provide further explanation: UML Profile for XSD 1044 XSD Datatypes Package Abstract XSD Models 1050
1050
1049
1045
XSDtopLevelAttribute 1049 XSDunion 1049 XSDattributeGroup 1050 . The following tables list the features of the UML Profile for XSD. 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 Construct Description Tagged Values anonymousRole: (true | false) anonymousType: (true | false) attributeFormDefault: (qualified | unqualified) defaultNamespace: Package
All Classes in a package are defined within one schema. This stereotype can be used to specify schema-wide settings. Specifies if the role name is included in the element declaration for the UML attribute. Specifies whether the Class type is anonymous for attributes. Determines whether attribute instances must be qualified. The default namespace used in this schema. This value is used to specify the default namespace attribute (xmlns=), in the schema element. Determines whether inheritances are generated using XSD extension or copy-down inheritance. Determines whether element instances must be qualified. Determines whether elements generated from Class attributes have their name qualified by the corresponding Class name. Specifies the default XSD model group used to generate complexType definitions. The URI that identifies the location of the schema. This value is used in the import and include elements. The URI that uniquely identifies this schema's namespace. The prefix that abbreviates the targetNamespace. The version of this schema. None.
elementDerivation: (true | false) elementFormDefault: (qualified | unqualified) memberNames: (qualified | unqualified) modelGroup: (all | sequence | choice) schemaLocation: targetNamespace: targetNamespacePrefix: version: Constraints
XSDcomplexType
UML Construct Description Class
complexType definitions are created for generic UML Classes. This stereotypes helps tailor the generation of a complexType definition. memberNames: (qualified | unqualified) Determines whether elements generated from the UML Class attributes and associations have their name qualified by the corresponding Class name for this complexType definition.
Tagged Values
1046
Determines whether this element can contain mixed element and character content. See the W3CXML Schema recommendation. Overrides the default XSD model for generating this complexType definition. None.
XSDsimpleType
UML Construct Description Tagged Values derivation: (restriction | list) length: minLength: maxLength: minInclusive: minExclusive: maxInclusive: maxExclusive: totalDigits: fractionDigits: whiteSpace: pattern: Constraints This Class can only participate in an inheritance relation with another simpleType. It cannot have any attributes or own any associations; they are ignored if present. See the W3C XML Schema recommendation. Class
An XSD simpleType is generated for Classes with this stereotype. Specifies the derivation of the simpleType. See the W3C XML Schema recommendation.
XSDsequence
UML Construct Description Class
The schema generator creates a sequence model group as the container for the attributes and associations owned by this Class. The model group is in turn added to the model groups of this Class respective owners. 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.
1047
None.
This Class must be the destination of unidirectional associations. If it is not, this Class and its connectors are ignored, possibly invalidating other model group Classes. Inheritance relations are ignored for this Class.
XSDchoice
UML Construct Description Tagged Values Constraints Class
Creates an XSD choice element. See XSDsequence for more details. None.
As for XSDsequence.
XSDelement
UML Construct Description Attribute: AssociationEnd
By applying this stereotype to a UML Class attribute or AssociationEnd, the corresponding UML entity is generated as an element within the parent complexType and not as an XSD attribute. form: (qualified | unqualified) position: Overrides the schema's elementFormDefault value.
Tagged Values
Causes the elements to be ordered within a sequence model group of the containing complexType. Duplicated and invalid position Tagged Values are ignored and result in undefined ordering of the UML attributes. Missing position values cause the defined positions to be allocated as specified, with the remaining elements filling the missing positions in an undefined order. Specifies if the role name is included in the element declaration for the UML attribute. Specifies whether the Class type is anonymous for attributes.
XSDattribute
UML Construct Description Attribute: AssociationEnd
By applying this stereotype to a UML Class attribute or AssociationEnd, the corresponding UML entity is generated as an XSD attribute within the parent complexType and not as an
1048
XSD element. Tagged Values form: (qualified | unqualified) use: (prohibited | optional | required) default fixed Constraints The attribute datatype should not see a Class specification, otherwise it is ignored. Overrides the schema's attributeFormDefault value.
XSDany
UML Construct Description Class: Attribute
If applied to a UML attribute, an XSD anyAttribute element is generated. If applied to a UML Class, an XSD any element is generated. namespace: See the W3C XML Schema recommendation. processContents: (skip | lax | strict)
Tagged Values
Constraints
None.
XSDrestriction
UML Construct Description Generalization
Overrides the default use of XSD extension for inheritance and generates the child as a complexType with a restriction element instead. None.
XSDgroup
UML Construct Description Tagged Values Constraints modelGroup: (sequence | choice | all) Class
An XSDgroup is generated for Classes with this stereotype. Overrides the default XSD model for generating this group definition. 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.
1049
The association should be via an Association connector. A group Class cannot be inherited/aggregated.
XSDtopLevelElement
UML Construct Description Tagged Values default See the W3C XML Schema recommendation. fixed Constraints An XSDtopLevelElement Class can contain either an XSDsimpleType or an XSDcomplexType as its child Class. When such a Class is present as its child, all its inheritance is ignored. This Class cannot be inherited. Class
Creates an <xs:element> construct which acts as a container for XSDcomplexType and XSDsimpleType Class.
XSDtopLevelAttribute
UML Construct Description Tagged Values use: (optional | required | prohibited) default fixed Constraints An XSDtopLevelAttribute Class can contain only an XSDsimpleType Class as its child Class. When such a Class is present as its child, all its inheritance is ignored. This Class can inherit from only one XSDsimpleType Class. Class
XSDunion
UML Construct Description Tagged Values Constraints Class
Creates an <xs:union> construct which can act as a container for XSDsimpleType Class. None
An XSDunion Class can contain only XSDsimpleType as its child Class and can generalize from other XSDsimpleType Classes only. All the Classes that this Class generalizes become the members of the attribute memberTypes. This Class cannot have any attributes or associations.
1050
XSDattributeGroup
UML Construct Description Tagged Values Constraints Class
Creates an <XSDattributeGroup> construct which can act as a container for a set of elements for stereotype XSDattribute. None
An XSDattributeGroup Class can contain only elements of stereotype XSDattribute and can be associated only with other XSDattributeGroup Classes. Only XSDcomplexType Classes can associate with this Class. This Class cannot be inherited.
1051
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"/>
1052
<xs:element name="mobilePhone" type="xs:string"/> <xs:element name="officePhone" type="xs:string"/> <xs:element name="email" type="xs:string"/> <xs:element name="streetAddress" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
Attribute
1053
dialog displays, showing the name of the selected package in the Source Package field.
3. In the Encoding field, set the required XML encoding. 4. In the XSD Style panel, the Generate global element for all global ComplexTypes checkbox is selected by default to generate schema in the Garden of Eden style 1054 . 5. In the Referenced Package Options panel, select the: Generate XSD for Referenced packages checkbox to generate schema for packages that are referenced by any of the packages selected in the list box Prompt when missing Filename checkbox to enable Enterprise Architect to prompt for a filename for a referenced package during schema generation, if the filename is missing. 6. In the Child Package Options panel, select the: Generate XSD for Child Packages checkbox to generate schema for child packages of the selected package Include all packages radio button to list all child packages under the parent package in the list box Include <XSDschema> packages radio button to list only those packages that have the stereotype XSDschema. The list box displays, for each package, the package name and the file path where the schema file is to be generated.
1054
7. If it is necessary to change the file path for a package, double-click on the entry in the list box and, on the Select XML File dialog, type or select the appropriate file path. 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 1052 dialog. Then, the generated XSD no longer contains the global element, as shown below:
1055
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 1056 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
1056
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.
On XSD import, Enterprise Architect treats this global element and its bounding ComplexType as a single entity and creates a single XSDcomplexType stereotyped Class with the same name as the global element as shown below:
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:
1057
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>
1058
Enterprise Architect supports Forward and Reverse Engineering of the W3C Web Service Definition Language (WSDL). The following topics explain how to use Enterprise Architect to model, generate and import WSDL files: Model WSDL 1058 Import WSDL 1068 Generate WSDL 1067
1059
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 1067 . The following topics describe the various WSDL elements and features supported by Enterprise Architect: WSDL WSDL WSDL WSDL WSDL WSDL WSDL WSDL Namespace 1060 Document 1061 Service 1062 Port Type 1063 Message 1064 Binding 1064 Port Type Operation Message Part 1067
1066
1060
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 Enterprise Architect UML Toolbox.
1998-2009 Sparx Systems Pty Ltd
1061
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 1042 , and you drag XSDelement 1047 , XSDsimpleType 1046 and XSDcomplexType 1045 elements onto the Types diagram from the XML Schema 129 page 129 of the Enterprise Architect UML 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.)
1062
To define new WSDL document components for your namespace, follow the steps below: 1. Open the Overview diagram defined for your WSDL namespace package, and drag the WSDL element from the Toolbox onto the diagram. The WSDL Document Properties dialog displays.
2. Type in the Name and File Name for the document. 3. The XMLNS panel lists the default XML namespaces used by the document. If required, click on the New button to add further namespaces. 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 1062 . 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.)
1063
3. In the Name field, type the service name. 4. Click on the New button to add Service Ports. The WSDL Port dialog displays.
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 1064 . 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.)
1064
3. Type in the name for the portType. 4. Click on the OK button to close the WSDL PortType dialog. 5. Define operations for the portType by dragging the Port Type Operation of the Enterprise Architect UML Toolbox onto the portType interface.
1066
You can edit the WSDL-specific properties of the portType later by double-clicking the interface in the diagram or Project Browser. Alternatively, in the WSDL PortType dialog, click on the UML button to invoke the standard Properties dialog for an interface. (This button does not display on the initial WSDL PortType dialog for a new PortType element.)
3. Type in the Name for the message. 4. Click on the OK button to close the WSDL Message dialog. 5. You can define parts for the message by dragging the Message Part 1067 element from the WSDL Elements page of the Enterprise Architect UML Toolbox onto the Message element. You can edit the WSDL-specific properties of the message later by double-clicking the Message element in the diagram or Project Browser. Alternatively, on the WSDL Message dialog, click on the UML button to invoke the standard Properties dialog for a Class. (This button does not display on the initial WSDL Message dialog for a new Message element.)
1065
Bindings package to open the Bindings diagram. 2. Drag the Binding element from the Toolbox onto the diagram. The WSDL Binding dialog displays.
3. Type in a Name for the Binding. 4. Select the PortType for the Binding; the drop-down list of PortTypes is taken from those defined in the PortTypes package. 5. Select the Protocol for the Binding, either http or soap. 6. For SOAP Bindings, enter the Transport URL and select the Style. For http Bindings, select the Verb. 7. Click on the OK button to close the WSDL Binding dialog and create the binding. A realization connector is created between the binding and the corresponding Port Type interface. 8. To specify the Binding operations, select and double-click on an Operation in the Binding element. The WSDL Binding Operation Details dialog displays.
9. Type in or select the Binding Operation details. 10. Click on the Parameters button. The WSDL Binding Operation Parameters dialog displays. For each input, output and fault, click on the Details button and enter the details. 11. Click on the OK button on each of the WSDL Binding Parameter Details, WSDL Binding Operation Parameters and WSDL Binding Operation Details dialogs to close them.
1066
You can edit the WSDL-specific properties of the binding later by double-clicking the binding Class in the diagram or Project Browser. Alternatively, on the WSDL Binding dialog, click on the UMLbutton to invoke the standard Properties dialog for a Class. (This button does not display on the initial WSDL Binding dialog for a new Binding element.)
3. Type in the Name for the operation. 4. Select the Operation Type. 5. Type in or select the Input, Output and Fault details for the operation. The Message drop-down list is taken from the WSDLmessage elements defined under the Messages package. 6. Click on the OK button to close the WSDL PortType Operation dialog and create the operation. You can edit the WSDL-specific properties of the portType operation later by double-clicking the operation in
1998-2009 Sparx Systems Pty Ltd
1067
the diagram or Project Browser. Alternatively, on the WSDL PortType Operation dialog, click on the UML button to invoke the standard Properties dialog for an operation. (This button does not display on the initial WSDL PortType Operation dialog for a new PortType Operation.)
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.)
1068
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.
1069
3. In the Filename field, select the input file. 4. The Target Package field is automatically set to the name of the selected input file. If required, change this name. 5. Click on the Import button to import the schema. 6. The progress of the WSDL import is shown in the Progress status bar.
Part
XIII
1071
Data Modeling |
13 Data Modeling
You perform database modeling and database design in Enterprise Architect using the UML Data Modeling Profile. This profile provides easy-to-use and easy-to-understand extensions to the UML standard, mapping the database concepts of tables and relationships onto the UML concepts of Classes and associations. These extensions also enable you to model database keys, triggers, constraints, RI and other relational database features. 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.
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
Data Modeling |
1072
MySQL Oracle 9i, 10g and 11g PostgreSQL Sybase Adaptive Server Anywhere (Sybase ASA) Sybase Adaptive Server Enterprise (Sybase ASE).
Note: 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 1073 Create a Table 1074 Set Properties of a Table 1075 Create Columns 1081 Create Oracle Packages 1084 Create Primary Keys 1085 Create Foreign Keys 1088 Create Stored Procedures 1094 Create Views 1096 Create Indexes, Check Constraints and Triggers 1098 Generate DDL for a Table 1100 Generate DDL for a Package 1102 , and compare with the database Convert Datatypes for a Table 1106 Convert Datatypes for a Package 1107 Customize Datatypes for a DBMS 1109 Import a Database Schema from an ODBC Data Source 1111
1073
A Data Model diagram is represented in Enterprise Architect as a Class diagram, and is created in exactly the same way 279 as other diagrams.
1074
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 Enterprise Architect UML 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 6. Click on the OK button.
1075
as required.
1075
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 1077 and, for MySQL 1078 and Oracle 1078 databases, setting the table options.
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.
1076
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 1098 , or you can Generate DDL 1100 for this table.
1081
or Operations dialog
1077
4. 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. 5. Click on the OK button to confirm the operation. Generated DDL includes the table owner in the SQL script.
1078
4. In the Tag field, enter the tag name Type. In the Value field, type InnoDB as the value for the Type tag. 5. Click on the OK button to confirm the operation. Generated DDL includes the table type in the SQL script. 6. To allow for later versions of MySQL, additional table options that can be added in the same manner include: Tag ENGINE CHARACTER SET CHARSET COLLATE Value (Example) InnoDB latin1 latin1 latin1_german2_ci
1079
5. Click on the OK button to save the Tagged Value. All available properties for an Oracle table are listed below. Note: The same properties can be added to indexes and constraints the properties as Tagged Values. Property BUFFER_POOL CACHE DBVERSION FREELISTS GRANT OWNER1 GRANT OWNER2 INITIAL INITRANS LOGGING MAXEXTENTS MAXTRANS MINEXTENTS MONITORING OWNER PARALLEL PCTFREE PCTINCREASE Value DEFAULT NOCACHE 9.0.111 1 SELECT DELETE, INSERT, SELECT, UPDATE 65536 1 LOGGING 2147483645 255 1 MONITORING OWNER1 NOPARALLEL 10 0
1098
1080
The properties defined for a given table are listed on the Tagged Values window, as illustrated by the following typical Tagged Value list:
1081
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. To create columns, follow the steps below: 1. Right-click on the Table in a diagram to open the context menu, and select the Attributes menu option. 2. The <Tablename> Columns dialog displays.
3. In the Name field, type the column name. 4. In the Data Type field, click on the drop-down arrow and select the data type, and click on the Save button.
1082
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 133 . 5. The following fields for each column are optional: Primary Key - select the checkbox if the column represents the primary key 1085 for this table Not Null - select the checkbox if empty values are forbidden for this column Unique - select the checkbox if it is forbidden for any two values of this column to be identical Initial - type a value that can be used as a default value for this column, if required Access - click on the drop-down arrow and select a scope of Private, Protected or Public (the field defaults to Public) Alias - type an alternative name for the field (for display purposes), if any Notes - type any other information necessary to document the column; you can format the text using the Rich Text Notes toolbar 139 at the top of the field. 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 1098 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: create NUMBER by setting Precision = 0 and Scale = 0 create NUMBER(8) by setting Precision = 8 and Scale = 0 create NUMBER(8,2) by setting Precision = 8 and Scale = 2. Oracle VARCHAR2(15 CHAR) and VARCHAR2(50 BYTE) datatypes can be created by adding the tag LengthType with the value CHAR or BYTE. For MySQL ENUM and SET datatypes, in the Initial field type the values as a comma-separated list, in the format ('one','two','three') or, if one value is the default, in the format: ('one','two','three') default 'three'. 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
1998-2009 Sparx Systems Pty Ltd
1083
1084
5. Open the Properties dialog for the Specification Operation and, on the Behavior tab, type the entire package specification into the Initial Code field. 6. For the package body, create an Operation with the name Body and with no return type. 7. Open the Properties dialog for the Body Operation and, on the Behavior tab, type the entire package body into the Initial Code field.
1085
topic).
1086
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%. 4. Click on the Save button.
1087
4. Select the SQL Server Non Clustered Primary Key checkbox. 5. Click on the Save & Close button.
1088
2. Select an Associate connector in the Class Relationships page of the Enterprise Architect UML Toolbox . 3. Click on the Table to contain the Foreign Key (source) and draw the connector to the other Table (target). 4. Right-click on the connector to display the context menu, and select the Foreign Keys option. The Foreign Key Constraint dialog displays.
1089
5. If necessary, edit the default name for the Foreign Key. 6. Highlight the columns involved in the Foreign Key relationship. 7. Click on the Save button to automatically generate the Foreign Key operations. You have created the Foreign Key. The example below shows how this looks in a diagram:
1090
and
buttons.
to
1091
This creates the composite Foreign Key. The example below shows how this looks in a diagram:
1092
1093
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%. 4. Click on the Save button.
1094
1095
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 413 . Type in the required name.
1096
13.9 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 Enterprise Architect UML 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 413 . Type in the required name.
4. Click on the OK button to save your definition. An example diagram is shown below:
1097
1098
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. Currently Enterprise Architect does not generate DDL for triggers, but nonetheless they aid in describing and specifying the table structure in detail.
Create an Index
Ensure that the column(s) to be used in the index have already been defined
1081
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):
1099
1100
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.
1101
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. 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 select the Auto Numbering 1081 checkbox 1081 in the column properties. 6. To create the DDL, click on the Generate button. 7. To view the output, click on the View button (you must configure a DDL viewer in the Local Settings dialog first). Note: You can transport these DDL scripts between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
1102
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.
1103
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.
1104
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 select the Auto Numbering 1081 checkbox 1081 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.
1105
1106
1107
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.
1108
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 in the current diagram see the Diagram Properties 318 topic.
1077
1109
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.
1110
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.
1111
Analysis of legacy database systems is possible using Enterprise Architects reverse engineering 884 capabilities. By connecting to a live database via ODBC, you can import the database schema into a standard UML model. Subsequent imports enable you to maintain synchronization between the data model and the live database. Enterprise Architect supports importing database tables from an ODBC data source. Tables are imported as stereotyped Classes with suitable data definitions for the source DBMS. Note: 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).
1112
3. In the Database Name field, click on the [ ... ] (Browse) button and select a suitable ODBC data source 1113 from the ODBC dialog (ODBC must be installed and configured on your machine for this to work correctly). 4. If importing from Oracle, to restrict the import to a specific owner, type the owner name in the Schema/Owner 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. If you select to import User Stored Procedures, 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 Stored Procedure, Function or Sequence definition. If you select to import them 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. 7. Select the appropriate checkboxes to import user views, triggers, stored procedures, Oracle packages or system tables and views.
1113
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. 8. Click on the Import button to start the import. 9. Select the tables
1114
topic.
1114
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.
1115
Part
XIV
1117
MDA Transformations |
14 MDA Transformations
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 PlatformIndependent 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 1121 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 Hierarchy Window 194 . 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 786 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 755 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:
MDA Transformations |
1118
Transformations that are currently built-in include: DDL - Transforms platform-independent Class elements to platform-specific table elements EJB Entity - Transforms platform-independent Class elements to packages containing the Class and Interface elements that comprise an EJB Entity Bean EJB Session - Transforms platform-independent Class elements to packages containing the Class and Interface elements that comprise an EJB Session Bean Java - Transforms platform-independent elements to Java language elements JUnit - Converts a Java model to a model where test methods are created for each public method of any original Class C# - Converts a PIM to a standard C# implementation set NUnit - Converts a .Net language specific model to a model where test methods are created for each
1998-2009 Sparx Systems Pty Ltd
1119
MDA Transformations |
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. Transformations are described in the following topics: Transform Elements 1120 Import Transformations 1122 Transformation Templates 1123 Built-in Transformations 1125 Write Transformations 1143 Chaining Transformations 1121
1120
There are two modes for initiating a Model Transformation, each of which can be started in two ways. To To transform selected elements on a diagram, either: Select the Project | Transformations | Transform Selected Elements menu option, or From the context menu for the Classes on the diagram, select the Transform option. transform elements in the package currently selected in the Project Browser, either: Select the Project | Transformations | Transform Current Package menu option, or From the context menu of the package in the Project Browser, select the Transform Current Package option.
When the dialog displays, all elements are selected and all transformations previously performed from any of these Classes are checked. Option Elements All None Include child packages Use to Select (click on) the individual elements to be included in the transformation. Select all of the elements from the list to be included in the transformation. Deselect all of the elements from the list. Select to include elements in child packages of the selected package.
1121
Option Transformations
Use to 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.) 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.
Perform Transformations on result Intermediary File Write Always Write Now Do Transform
Specify if transformations previously done on target Classes should be automatically executed. See Chaining Transformations 1121 for more information. Specify the filename of the intermediary file (if any). Write the intermediary file to disk. Generate the intermediary file but do not perform the transform. Execute the transform command.
1122
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.
1123
Use to Select the name of the transformation. Display the contents of the active template. Provide the editor for modifying 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. Create a new transformation. List the stereotyped templates, for the active base template.
1124
Option
Use to The Modified field indicates whether you have modified a default stereotyped template.
Add New Stereotyped Override Add New Custom Template Help Get Default Template Save Delete
Invoke a dialog for adding a stereotyped template, for the currently selected base template. Invoke a dialog for creating a custom stereotyped template.
Launch the Enterprise Architect Help topic for this dialog. Update the editor display with the default version of the active template. Overwrite the active templates with the contents of the editor. If you have overridden the active template, delete the override and replace it with the corresponding default transformation template.
1125
Enterprise Architect comes with some built-in transformation types. These transformations have been designed to be useful to as many users as possible, to be a good base to modify to include the specifics of your custom domain, and to be good examples of how to write transformations. The following transformations are included in Enterprise Architect. C#
1125
1131
NUnit
1136
DDL
1127
WSDL XSD
1138
EJB Entity
JUnit
1134
1139
14.4.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 924 page 924 of the Options dialog. The PIM:
1126
1127
1128
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. In the Source and Target sections, lists all of the columns involved; this ensures that they exist and that a matching primary key exists in the destination Class, and creates the appropriate foreign key. The following two diagrams show a typical PIM to Data Model Transformation. The PIM:
1129
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.
1130
1131
Both transformations also generate a META-INF package containing a deployment descriptor element. The Platform-Independent Model (PIM):
After transformation generates a set of Entity Beans, where each one takes the following form (for the Account Class):
1132
1133
1134
1135
1136
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 1037 . It is your responsibility to fill in the details of each test.
1137
1138
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 1037 . 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 1139 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.
1139
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 1067 .
topic.
1140
1141
1142
</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>
1143
This topic provides help in writing your own transformations. Subjects covered are: Default Transformation Templates 1143 General Syntax for the Intermediary Language Syntax for Creating Objects 1144 Syntax for Creating Connectors 1148 Transforming Duplicate Information 1150 Converting Types 1150 Converting Names 1150 Cross References 1151
1143
Further hints and tips can be gleaned from a close study of the Transformation Templates provided with Enterprise Architect. Note also that writing transformations is very similar to writing code generation templates, so an understanding of the Code Template Framework 937 can greatly assist in understanding transformations. The Transformation Template editor provides the facilities of the Common Code Editor. For more information on the Common Code Editor, see the Code Editors 205 topic. Transformation Templates are accessed from the Settings | Transformation Templates menu option.
1144
elementName is any one of the set of element types as described in Objects 1144 and Connectors 1148 propertyName is any one of the set of properties as described in Objects 1144 and Connectors 1148 . Literal strings can be included in property values by escaping a quote character. For example:
default = "\"Some string value.\""
14.5.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
1998-2009 Sparx Systems Pty Ltd
1145
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. Attribute Classifier Parameter Operation Parent Tag XRef Any object.
1146
Notes: Some of the above only apply to certain object types. Every object created in a transformation should include an XRef element 1151 , 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.
1147
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. 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.
1148
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.
14.5.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 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.
1149
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.
There are three uses of the TRANSFORM_REFERENCE macro: one to identify this connector for synchronization purposes and the other two to identify the ends. All three use the same source GUID, because they all come from the one original Class. None of the three have to specify the transformation because the two references are referencing something in the current transformation. Each of them then only has to identify the transform name. Of course it is also possible to create a connector from another connector. You can create a connector template and list over all connectors connected to a Class from the Class level templates. You don't have to worry about only generating it once, because if you have created a TRANSFORM_REFERENCE for the connector then Enterprise Architect automatically synchronizes them. The following copies the source connector.
%connectorType% { %TRANSFORM_CURRENT()% %TRANSFORM_REFERENCE("Connector",connectorGUID)% Source { %TRANSFORM_REFERENCE("Class",connectorSourceGUID)% %TRANSFORM_CURRENT("Source")% } Target { %TRANSFORM_REFERENCE("Class",connectorDestGUID)% %TRANSFORM_CURRENT("Target")% } }
1150
GUID=%qt%%classGUID%%qt% } }
1151
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 semicolon 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%
Each cross reference has three different parts: A Namespace, corresponding to the transformation that generated the element A Name, which is a unique reference to something that can be generated in the above transformation A Source, which is the GUID of the element that this element was created from. When writing the templates for a transformation, it is easiest to create the cross references using the TRANSFORM_REFERENCE macro that is defined for this purpose. It has three optional parameters.
Where: If <name> is not specified it gets the name of the current template If <sourceGUID> is not specified it gets the GUID of the current Class If <namespace> is not specified it gets the name of the current transformation. 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 1127 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.
1152
Part
XV
1154
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 1159 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 1210 Select, group and order packages together in a different manner from the Project Browser by creating ' Virtual' Documents 1224 , 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 1224 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 1155 Use MS Word. 1212
RTF Reports
You can also generate a number of RTF reports on different aspects of your model. See the Other Documents 1220 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
1233
topic.
1155
1156
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 1156 Generate RTF Documentation Dialog 1159 RTF Document Options 1192 RTF Templates Dialog 1162 Custom Language Settings 1211 Include or Exclude a Package from Report
1159
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.
1157
selecting: The type of element to report on The specific elements to report on, together or separately, whether in the same package or not. For example, you might want to find all elements with test cases, with the intention of reporting on some or possibly all such elements. With the Element List, you would identify these elements yourself within the list of all elements in a selected package, but with the Model Search you could specifically identify the elements across a section of the model or across the whole model, as required. The search filtering could be for specific test cases; however, the results are by element so if there are test cases outside the range in any element that has a filtered test, these elements are listed as well. Having generated the list of elements, you can select individual elements, blocks of elements, or all elements, and then (as above) use the context menu to generate a report on all of the elements, or separate reports on each element.
1158
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:
To report on the linked elements in: the same style as defined in the Package::Elements section, delete the [right-click-to-insert-Element-field(s)] text to leave a blank area a different style to the elements within the selected package, set up the style as appropriate.
option
329
Rotate Images
Select this checkbox to rotate each diagram image by 90 degrees in the RTF document. Note: Only valid for bitmap (.bmp) images.
1159
3. Select the Exclude Package from RTF Reports radio button. 4. Click on the OK button to save changes.
The Generate RTF Documentation dialog enables you to set the exact contents and look and feel of your report.
1160
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 1162 Document Options 1192 Advanced Options 1194 Element Filters 1195 Other Filters 1197 Project Constants 1199 Word Substitution 1200 Language Substitution (Codepage)
1200
1161
Use to 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 usergenerated template. Switch custom language word substitutions
1200
on.
Deselect to switch custom language word substitutions off. Open the document as soon as it has been generated.
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 1192 in order to show field value text. Open Office defaults to showing field codes only, and you cannot toggle to the field values.
Include elements in the report from external packages that are referenced from a 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 1157 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.
Generate reports where diagrams are adjusted for clean rendering in Open 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 View
Generate the document. 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 the currently-named template using the RTF Style Template Editor
1163
Edit Template
You can only edit user-defined templates, not the standard templates provided with Enterprise Architect. Standard template names are enclosed in parentheses. Resource Document Save the current options as a document definition
1191
1162
Option Abort
1163
Do this... Click on the template name and click on the Delete button. 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 Editor Import RTF Templates saved to XML files using the Tools | Export Reference Data menu option
Click on the template name and click on the Edit button. The Document Template Editor screen displays, presenting the facilities of the RTF Style Template Editor. 1. Click on the Import From Reference File button. 2. On the Import Reference Data dialog, click on the Select File button and browse for and select the required file. 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
1173
and Import
1164
For example, the section tag for Package | Diagram | Element is displayed in the Content panel above the section tag for Package | Diagram | Connector.
1165
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 1157 dialog for at least one included diagram, or the Include all diagram elements in report checkbox on the Generate RTF Documentation 1159 dialog.
1166
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 > <linked document
1167
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.
When you select the valueOf field from the context menu, the template editor prompts you to specify the tag (Tagged Value) from which to extract the value for the report output. This tag should be one of the tags associated with the model component, such as ConnectorAltName for a connector. When you provide the tag name, the template editor adds the field at the cursor position, in the format: {Connector.valueOf(tagname)} for example: {Connector.valueOf(ConnectorAltName)}
For clarity, you could type some lead-in text or the meaning of the Tagged Value immediately preceding the value field; for example: Alternative Name: {Connector.valueOf(ConnectorAltName)}
1168
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:
This generates the following table: Element Name Choose Recipient Author John Redfern Line Space Manage Contacts Walter Frederick
To avoid this, ensure that there is no carriage return between the end of the table and the section terminator, as follows:
This generates a table with no space between the rows, as follows: Element Name Choose Recipient Manage Contacts Author John Redfern Walter Frederick
1169
1170
1171
1179
1172
Hyperlinks and Bookmarks 1181 Table Commands 1181 Sections and Columns 1184 Stylesheets and Table of Contents 1184 User-Defined Section Numbering 1185 Frame and Drawing Objects 1189 Search/Replace Commands 1189
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.
Keyboard Keys Press [#], [$], [!] or ["] to scroll up or down a line, or left or right one character [Home] to move to the beginning of the current line [End] to move to the end of the current line [Ctrl]+[Page Up] to move to the beginning of a file [Ctrl]+[Page Down] to move to the end of a file [Page Up] to display the previous page [Page Down] to display the next page [Ctrl]+[!] to move to the previous word [Ctrl]+["] to move to the next word [Ctrl]+[#] to move to the first column of the current line (if not already on the first column) or the first column of the previous line [Ctrl]+[$] to move to the first column of the next line [F10] (or select the Other | Jump menu option), type in a line number to jump to, and click on the OK button. Mouse Click on the vertical and horizontal scroll bar to perform various scrolling functions. These functions are available only if the horizontal or the vertical bar has been enabled by the startup parameters. Vertical Scroll Bar: Click on the arrows on either end to scroll the screen up or down by one line. Click above the elevator to scroll the screen up by one page. Similarly, click below the elevator to scroll the screen down by one page. You can also drag the elevator to any position in the bar. As the elevator is dragged, the editor scrolls the screen up or down accordingly. Horizontal Scroll Bar: Click on the arrows on either end to scroll the screen left or right by one column. Click on either side of the elevator to scroll the screen left or right by 1/2 screen. You can also drag the elevator to any position in the bar. As the elevator is dragged, the editor scrolls the screen left or right accordingly.
1173
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.
Revert to the previously-saved copy of the template. Save the text to the current file name. If a file is not yet specified, the editor prompts you for a template name.
Similar to Save File, but you specify a new template name for saving the template. Import an existing RTF document 1190 into the Template Editor, so as to insert styles and 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'.
Export
Save the template either as an RTF document or as a template. This can be useful for saving the template for other models.
Update Styles
Imports the styles from Normal.rtf, found in the Doc Templates directory. Notes: Existing styles are not replaced. 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).
1192
Specify the page layout, before selecting the Print option. You can specify the margins (left, right, top and bottom) in inches. Invoke a printer-specific dialog for the default printer (the default printer selection is 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 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 [Ctrl]+[P]
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.
1174
Use to
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.
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.
Highlight the lines of text to be deleted and press [Delete] Press [Shift]+[F9] to delete the current line. The remaining lines close up. Select the Edit | Paste Special menu option. The Paste Special dialog displays, listing 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.
1175
To
Do this... Device Independent Bitmap and Regular Bitmap formats The data is available in bitmap formats. You can later edit the object, by double-clicking on it and invoking the Microsoft MS Draw application. The editor converts these formats into the Picture format before calling the drawing application.
1176
Menu Option
Use to When Page Border is selected, the document contents are shown within a page outline. When Page Border is deselected, the document contents are formatted within the boundaries of the editing screen.
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.
1177
To reset any character format, highlight the text and select the Font | Normal menu option, or press [Alt]+[0]. Change font typeface and point size Change character style Highlight the text to change and select the Font | Fonts menu option, or press [Alt]+ [F10]. The Font Selection dialog displays, from which you select the required typeface and point size. Click on the OK button. Highlight the text to change and select the Font | Style menu option. The Select a Style dialog displays, listing the currently-defined character styles in the template stylesheet 1184 . Select the required style and click on the OK button. 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 In each case, the Color dialog displays, through which you can select or define the underline required color. When you have selected a color, click on the OK button. Change character spacing Normal character spacing is 20 Twips. If you want to change this (or return to it), highlight the text to adjust, and select the Font | Spacing menu option. The Character 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 Insert a nonbreaking space Insert a nonHighlight the text to box and select the Font | Boxed menu option. This creates a broken-line border around the selected text. Move the cursor to the point at which to insert the non-breaking space and select the Insert | Non-breaking Space menu option. Move the cursor to the point at which to insert the non-breaking dash and select the
1178
Do this... Insert | Non-breaking Dash menu option. Move the cursor to the point at which to insert the hyphen and select the Insert | Optional Hyphen menu option.
block of text.
To set the text flow for: A selected block of text, select the Paragraph | Text Flow menu option; the Paragraph Text Flow dialog displays The entire document, select the Edit | Document Text Flow menu option; the Document Text Flow dialog displays. In either case, select the required text flow direction and click on the OK button.
Center text Right-justify text Justify both sides of text Set double line spacing Indent paragraph left Indent paragraph right Create hanging indent Keep paragraph lines together Keep paragraph with next
Select the Paragraph | Center menu option or press [Alt]+[8]. Select the Paragraph | Right Justify menu option or press [Alt]+[9]. Select the Paragraph | Justify Both menu option.
Select the Paragraph | Double Space menu option. A double-spaced paragraph has a blank line between each text line. Select the Paragraph | Indent Left menu option or press [Alt]+[L]. Select the option again to increase the indent. Select the Paragraph | Indent Right menu option or press [Alt]+[R]. Select the option again to increase the indent. Select the Paragraph | Hanging Indent menu option or press [Alt]+[T]. Select the option again to increase the indent of all lines below the first. Select the Paragraph | Keep Together menu option. The editor attempts to keep all lines within the paragraph on the same page. Select the Paragraph | Keep with Next menu option. The editor attempts to keep the last line of the current paragraph and the first line of the next paragraph on the same page. Select the Paragraph | Widow/Orphan Control menu option. The editor attempts to 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 page Insert border and shading for text block
Move the cursor to the point at which to start the new page, and select the Paragraph | Page Break Before menu option. Highlight the required text and select the Paragraph | Border and Shading menu option. The Paragraph Box Parameters dialog displays, on which you specify which 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.
1998-2009 Sparx Systems Pty Ltd
1179
To Define line spacing Set a background color for text space Create a bulleted list Create a numbered list Apply numbering to paragraphs Apply a paragraph style from the template stylesheet
Do this... Highlight the required lines and select the Paragraph | Paragraph Spacing menu option. The Paragraph Spacing Parameters dialog displays, on which you specify the line spacing and the point spacing before and after lines. Highlight a text string or block of text and select the Paragraph | Background Color menu option. The Color dialog displays, on which you select the background color. The editor highlights the full width of the page in that color, for the selected lines. Highlight the required lines of text and select the Paragraph | Bullet menu option. The editor formats the lines into a simple bullet list. Highlight the required lines of text and select the Paragraph | Numbering menu option. The editor formats the lines into a simple numbered list. Set up a numbering list and overrides 1185 (Edit | List and Overrides) and apply the numbering levels 1187 to the template sections (Paragraph | List Numbering). Select the Paragraph | Style menu option. The Select a Style dialog displays, listing the currently-defined paragraph styles in the template stylesheet 1184 . Select the required style and click on the OK button.
1180
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 Insert the page number Insert the page count Do this... Position the cursor at the point at which to display the page number, and select the Insert | Page Number menu option. The page number is displayed in gray. Position the cursor at the point at which to display the total number of pages in the document, and select the Insert | Page Count menu option. The page count is displayed in gray.
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 and footer for the initial page of the document In Page Mode, select the Edit | Edit Page Header/Footer menu option and then select the Edit | First Page Header/Footer | Create First Page Header or Create First Page Footer menu option. A paragraph marker displays at the top or bottom of 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 and footer for the initial page of the document Whilst you can delete the first page header or footer text by simple editing, you must specifically delete the 'first page' assignment in order to display the header and footer text of the next section on the first page. 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. 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.
Create a footnote
1181
To
Do this... 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.
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.
1182
To
Add a header row Insert a new row above the current row Insert a new column to the left of the current column Merge cells
Select the rows to act on, and then select the Table | Header Row menu option. Apply any heading settings and formatting to the rows in the highlighted block. Select the Table | Insert Row menu option.
Select the cells to merge and select the Table | Merge Cells menu option. The width of 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. 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. 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.
Split a cell
Delete cells
Click on any part of the table and select the Table | Row Position menu option. The Table Row Alignment dialog displays, on which you select to left-align, center or rightalign 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 together if it continues over a page Set text flow in rows Select the rows to protect (preferably all rows in the table) and select the Table | Keep Row Together menu option. If the row continues over the end of the page, the whole row is moved to the top of the next page.
Select the rows and select the Table | Row Text Flow menu option. The Table Text 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.
Select the cells to act on and select the Table | Cell Width menu option. The Set Cell 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.
Select the cells to act on and select the Table | Cell Border Width menu option. The Set 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
1183
To
Do This... 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.
Select the cells to act on and select the Table | Cell Border Color menu option. The Set 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 All cells in the selected row or rows.
Select the cells to act on and select the Table | Cell Shading menu option. The Cell Shading Parameters dialog displays, on which you set the shading percentage. The value 0 indicates the palest background, whereas the value 100 indicates a black background. You then apply the setting 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.
Select the cells to act on and select the Table | Cell Color menu option. The Cell Color Parameters dialog displays, on which you set the cell background color. You then apply the color 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.
Select the cells to act on and select the Table | Cell Vertical Align menu option. The Cell Vertical Alignment dialog displays, on which you select to align the selected cells by top, center, bottom or baseline. You then select to align: 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.
Select the cells to act on and select the Table | Cell Rotate Text menu option. The Cell Text Rotation dialog displays. On which you select to display text horizontally across the cell, vertically up the cell, or vertically down the cell. You then select to apply the rotation 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.
Click on a cell and select the Table | Select Current Column menu option. The whole column is highlighted and selected for further formatting. Click on a table cell and select the Table | Show Gridlines menu option. This displays 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.
1184
1185
To
Do this... 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.
Select the Font | Style menu option to apply a stylesheet style to a highlighted character string. Select the Paragraph | Style menu option to apply a stylesheet style to a highlighted paragraph or range of paragraphs. Create and apply the required heading styles using the Edit | Edit Style menu option, 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
1179
occurs.
Move the cursor to the point at which to insert the current date and time, and select 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.
Not Supported In The Enterprise Architect RTF Generator. 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. Move the cursor to the point at which to insert the text entry field and select the Insert | 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 numbering in generated document Select the Edit | List and Overrides menu option, set up the numbering list and the list overrides 1185 , then apply the numbering list to the headings set for packages and elements, using paragraph numbering.
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.
1186
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.
1187
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 on the OK button to save the values and close the dialog. 8. Open the dialog again (Edit | List and Overrides | Edit List Level) and set: List Level to 2 (for the Element Section or Child Package Section, for example) Start at to 1 (to ensure that numbering at this level begins at 1.1 rather than 1.0). 9. Click on the OK button to close the dialog and save the changes. 10. Repeat steps 5 to 9 as required, incrementing the list level number and resetting Start at to 1 each time.
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.
1188
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:
1189
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 Search for a text string Do this... Select the Other | Search menu option, or press [F5]. The Search String Parameters dialog displays. The editor searches for the first instance of the specified character string as defined by the parameters.
1190
To Find the next instance of a previously-defined text string in the file Find the previous instance of the previously-defined text string in the file
Do this... Select the Other | Search Forward menu option, or press [Ctrl]+[F]. The editor searches forwards for the next instance of the specified text string in the file, and highlights it.
Select the Other | Search Backward menu option, or press [Ctrl]+[Shift]+[F]. The editor searches backwards for the previous instance of the text string in the file, and highlights it.
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 making the change.
3. Click on the OK button to create and open the new template in the RTF Document Template Editor. 4. Select the File | Import menu option. The file Open dialog displays. 5. Locate your template RTF file, and click on the Open button. The Open dialog closes, returning you to the Document Template Editor dialog. This now contains your imported template. 6. If necessary, make any changes to exit the dialog. 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 1156 dialog or in a Master Document 1225 or Model Document 1227 element. You can also insert RTF sections into the imported template as place-holders for automatically generated model content - see below.
1171
to the template and select File | Save before selecting File | Close
1191
If you want to use a system template (which cannot itself be edited) click on the New button and, on the New Document Template dialog, in the New template field type a name for a new template and in the Copy template field type or select the name of the required template, such as (basic template). Click on the OK button. 5. In EA2, highlight the required section-text in the template (from package> to <package) and select Edit | Copy to copy it. Note: You can copy all the text between the package section markers, but you cannot copy and paste just the text between sub-package section markers. 6. In the company template in EA1, select Edit | Paste to paste the copied sections into the template. 7. Select File | Save to save the template in EA1, and then select File | Close. 8. Re-open the EA1 template to refresh the sections tree.
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
1192
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.
1193
Use to
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. 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). 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". Filter connectors according to direction. If you select Both, the connector is documented twice; once for the source element and once for the target. For the remaining two values, the connector is documented only for the source or target element, as appropriate.
Connector Direction
Order Packages by Elements by Diagrams by Order packages in the generated documentation in either ascending or descending order of Name, Tree Order, Modified Date or Created Date. Order elements in the generated documentation in either ascending or descending order of Name, Tree Order, Modified Date or Created Date. Order diagrams in the generated documentation in either ascending or
1194
Option
Use to descending order of Name, Tree Order, Modified Date or Created Date.
Exclude all elements of the selected type or types from the generated document. 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:
Use to Exclude all elements without notes from the documentation. Set the diagram format for the images included within the documentation to either Metafile or Bitmap. Exclude the parent package from the documentation and include only the child packages.
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:
1195
Option
Use 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.
No bookmarks Hide <Anonymous> elements Use style defined in template for notes Disable large OLE file support Insert page breaks when generating a Master Document Switch generator
Stop RTF bookmarks being inserted into the generated document. Hide anonymous elements in the documentation.
Apply the template-defined style for notes instead of the RTF styles defined within the element. Disable support for large Object Linking and Embedding (OLE) files.
1224
Switch from this Generate RTF Documentation dialog (the Enhanced Template Driven Generator) to the Rich Text Format Report dialog 1201 (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 1159 dialog, and tabs to set Element Filters 1195 and Other Filters 1197 . Click on the OK button to save your changes.
1196
contents or click on the Edit Filter button, to display the Edit Filters dialog. The format is the element field name, the conditions placed on the field value, any actual value or delimiting value to search on, and whether the filter item is required (mandatory).
The fields and options on this dialog are described below. Column/Button Search In Condition Look For
170
Use to Select the type and name of each element field to search on. Select the condition of the search parameter. The available options are Contains, Equal To, Not Equals and One Of. 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. Indicate that the search results must include elements with your search term in that field. (You select these checkboxes on the Add Filters 169 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.
170
Required
Specify whether element features are optional or required. These appear as a new branch underneath the root element term in the Search In column.
1197
Column/Button - Required
Use to If you scroll down the Search In column, you see sub-branches such as 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.
169
Open the Edit Filters dialog, which enables you to change the search parameters. Remove the selected filter from the search.
1198
The fields and options on this dialog are described below. Column/Button Search In Condition Look For
170
Use to Select the name of each feature field to search on. Select the condition of the search parameter. The available options are Contains, Equal To, Not Equals and One Of. 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. Indicate that the search results must include elements with your search term in that field. (You select these checkboxes on the Add Filters 169 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.
170
Required
169
Open the Edit Filters dialog, which enables you to change the search parameters. Remove the selected filter from the search.
1199
Use to Add a new field and value to the list. A prompt displays for the two data items. Remove the selected field from the list. A prompt displays to confirm the deletion. Import a set of fields from an external XML file. A browser displays to select the source file and location. Export a selected set of fields to an external XML file. A browser displays to specify the target file and location.
1200
To add a translation for a term: 1. Double-click on the term in the English column in the Word Substitution List; the Enter Value field displays.
2. Type the foreign language translation in the Enter Value field, and click on the OK button.
1201
To define the language substitution, follow the steps below: 1. From the drop-down lists in the Language, Codepage and Charset fields, select the language, codepage and character set that most closely match your location. 2. If required, modify the Substitute Tag by double-clicking on each and manually setting the value (for advanced use only). 3. To clear the substitution list, double-click on each item in turn and delete the substitute value. Now when you generate RTF documents, the substitute tags are used in the output. Note: You can transport these tag definitions between models, using the Export Reference Data Reference Data 820 options on the Tools menu.
819
and Import
formatting
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 must select the package or element to report on in the Project Browser, Element List or Model Search, and press [F8]. You access the Legacy Rich Text Format Report dialog by clicking on the Switch generator button on the Advanced tab of the Generate RTF Documentation dialog. 1192
1202
The following topics provide assistance on using the Legacy Rich Text Format Report dialog to document your project. Document a Single Element 1202 The RTF Report Dialog 1203 Set the Main RTF Properties 1203 Apply a Filter 1204 Exclude Elements 1205 RTF Diagram Format 1205 Model Include 1206 RTF Report Options 1206 RTF Report Selections 1207 Generate the Report 1208 Diagram Only Report 1221 Report Templates 1208 Include or Exclude a Package from Report Save as Document 1210
1159
1203
Note: The Rich Text Format Report dialog has a lot of options. Get to know them all to produce output at the level of detail suited to your project.
1204
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.
1205
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.
1206
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 1203 of the Rich Text Format Report dialog is set to Max 9 levels - elements are package + 1.
1998-2009 Sparx Systems Pty Ltd
1207
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.
1208
and
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 1209 for further details.
1998-2009 Sparx Systems Pty Ltd
1209
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 1209 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 1201 dialog. Once a style is selected, Enterprise Architect applies that to the current report. Select <Basic> for the inbuilt style.
1210
2. Click on the Save as 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 Rich Text Format Report dialog, loaded with the specified template Auto Generate Document - Generates documentation, with the document located at the path specified by
1998-2009 Sparx Systems Pty Ltd
1211
the template's Filename property Delete Document - Removes the specified document.
To Set Up Substitutions
1. Open the Rich Text Format Report dialog (see The Legacy RTF Report Generator this).
1201
for how to do
2. In the Language panel (bottom left of dialog) click on the Adjust button. The Customize RTF Language dialog displays.
3. Double-click on an item to set or clear its Substitute word. 4. When you have finished, click on the OK button.
1212
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 and Import Reference Data 820 options on the Tools menu.
819
1212
1213
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.
1214
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.
1215
5. Click on the OK button. 6. Click on the drop-down arrow next to the Insert button. Select the Insert as Link option.
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 1219 . 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.
1216
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 1192 topic.
1217
This enables you to enter information into the header section and the footer section of the RTF Documentation.
1218
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.
1219
1220
1221
Use to Confirm the root package. All elements and packages under this package appear in the report. Locate the selected element in the Project Browser. Run the report again. List dependency details; lists the elements in the current package and the elements that they implement. Print the list.
3. In the Output Path field, type or browse for the output location to create the report in. 4. Select the options you require, as follows: Select the Embed Diagrams in Document checkbox to ensure the diagrams are created within the
1222
RTF file, not as linked image files Select the Include all child packages checkbox to document all of the diagrams included in any child package Select the Include Diagram Name checkbox to include the diagram name within the generated documentation Select the Order Diagrams Alphabetically checkbox to generate the documentation in alphabetical order. 5. Click on the Generate button to run the report. 6. When the report is generated, click on the View button to show the RTF output.
Use to Confirm the root package. All elements and packages under this package appear in the report. Show non-implemented elements. Non-implemented elements are those that don't 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 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. Locate the selected element in the Project Browser. Run the report again. List elements in the current hierarchy and elements that implement them. Print the list. 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 further information see the Set Target Types Dialog 1223 topic.
1223
1224
Virtual documents enable you to structure and filter your RTF reports by selecting, grouping and ordering individual packages independent of the organization of the Project Browser. You can create separate virtual documents defining, say, Requirements, Use Cases or Design elements of a project, or you can combine these separate reports - retaining their own different formats - into a single generated document with common headers and footers and a central contents list. This combined document could apply your corporate standards. You generate virtual documents in Enterprise Architect from individual Model Document 1227 elements. You can also, if required, combine several Model Documents under a Master Document 1225 package element. Each Model Document element identifies its own template; for example, a specifically-designed Requirements template for a Requirements document, or a Use Case template for a section on Use Cases. The template is identified in a Tagged Value, and defines the content as either: A list of packages (defined as attributes) in whatever order or combination is most appropriate to your requirements - you can easily add 1228 or delete 1229 packages as necessary; or A standard model search (defined as Tagged Values) created within the Model Search 161 facility (note 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 Bookmarking in Word.
1213
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 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 1190 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.
1230
1225
Document Elements
The Master Document and Model Document elements are available from the Documentation page of the Enterprise Architect UML Toolbox; on the Toolbox, select More Tools | Documentation. (This Toolbox page also provides the Document Artifact 1385 element, used for linked documents.)
When you drag the Master Document and Model Document elements onto a diagram, the following symbols display, respectively:
1226
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 generated document.
1227
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:
1227
1228
Notes: Diagram Searches are not supported. Custom SQL searches are supported if they are returning elements. The SQL must include ea_guid AS CLASSGUID and the object type. 6. If necessary, type a search term in the SearchValue field. 7. Create further Model Document elements as required. Your Model Document element appears in the Project Browser with a Class icon, as shown below:
165
When you have created all the required Model Document elements, see the Document Order
1230
topic.
1229
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 1231 . 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 1231 , but consider the impact of your package list on the Document Order 1230 . You can also delete packages 1229 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.
1230
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.
1231
In this case, Fact Model is being moved to follow Release Plan. 3. When you are satisfied with the order of your packages, click on the Close button.
1232
3. Set the options for your RTF document as required. See The RTF Report Dialog for further information on these settings. 4. Click on the Generate button to create the documentation.
1159
5. If you have not selected the View Document on Completion checkbox, click on the View button to view the documentation. The RTF Report Generator works through the defined content of the Master Document element and/or the Model Document elements and pulls in the information from either the listed packages or the executed searches, formatted according to the templates identified in the RTFTemplate Tagged Value for each document element.
1233
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 1233 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 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 755 permission to generate HTML documents.
1235
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 69 , Element 67 and Package 63 context menu options.
1234
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.
Use to Display the name of the package you are creating documentation for. Type the title for your HTML documentation; defaults to Package. Type the directory path your documentation is saved to. Select a web style template
1235
Specify the file extension for your HTML documentation files; the default is .htm.
1235
Use to 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 items Default Diagram Image Format Include System Omit the page for your notes and text items in the HTML report.
Select the diagram the report should open to when the generated documentation is loaded. Select the image file format to save your images in, either PNG or GIF. Select each area of your model to include in your report. Select each section to generate in your report.
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.
1236
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.
1237
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.
1238
Section
Fields
Body Object
#ABSTRACT# - Element abstract (if true, = abstract) #ACTIVE# - Element isActive (true or false) #ALIAS# - Element alias ("#ALIAS#") #AUTHOR# - Element author #CLASSIFIER# - Element classifier #COMPLEXITY# - Element complexity #CREATEDATE# - Element created date #CSS# - Style Sheet to use #DIAGRAMS# - List of diagrams the element is on #GUID# - Element GUID #IMAGES# - Image path #KEYWORDS# - Element keywords #LEFT# - Element isLeaf (true or false) #LEVELNUMBER# - Element level number #MODDATE# - Element modified date #MULTIPLICITY# - Element multiplicity ("Multiplicity: #MULTIPLICTY#") #NAME# - Element name #NOTE# - Element notes #PHASE# - Element phase #ROOT# - Element isRoot (true or false) #SCOPE# - Element scope #STATUS# - Element status #STEREOTYPE# - Element stereotype(s) #TYPE# - Element type; for example, Class, Object #VERSION# - Element version.
#CONTENT# - Loops Content Project Glossary Item for each Project Glossary item. #CONTENT# - Loops Content Project Issue Item for each Project Issue item. #CONTENT# - Loops Content Project Task Item for each Project Task item. #CONTENT# - Loops Content Attributes Item for each attribute on an element. #ALIAS# - Attribute alias ("<i>Alias:</i> #ALIAS#<br>") #CONST# - Attribute is constant value ("const " <-- Note Space) #CONSTRAINT# - Attribute constraint #DEFAULT# - Attribute default value ("<i>Initial:</i> #DEFAULT<br>") #NAME# - Attribute name #NOTE# - Attribute notes #ORDERED# - Attribute Is ordered value ("Ordered <br />") #RANGE# - If lower != 1 ("Range:<lower> to <upper>") #SCOPE# - Attribute scope ("#SCOPE# " <-- Note space)
Content Attributes
1239
Section
Fields #STATIC# - Attribute is static value (static <-- Note Space) #STEREOTYPE# - Attribute stereotype(s) #TAGS# - Attribute tags ("Property Name=Property Value<br>") #TYPE# - Attribute type (if Column, #TYPE(Column Precision, Scale)").
Content Constraints
#CONTENT# - Loops Content Constraints Item for each constraint on an element. #CONSTRAINT# - Constraint name #NOTES# - Constraint notes #STATUS# - Constraint status #TYPE# - Constraint type.
#CONTENT# - List of all Content Custom Properties - Item. #PROPERTY# - Custom property name #VALUE# - Custom property value ( if type equal boolean true or false else #VALUE#.) #CONTENT# - List of Content - Files Item. #DATE# - File date #NAME# - File filename (<a href=#FILENAME#</a>) #NOTES - File notes #SIZE# - File size #TYPE# - File type.
#MEANING# - Glossary Meaning #TERM# - Glossary Term #TYPE# - Glossary Type. #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. #ENDDATE# - Project Task end date #NAME# - Project Task name #NOTES# - Project Task notes #OWNER# - Project Task owner #PHASE# - Project Task phase
1240
Section
Fields #PRIORITY# - Project Task priority #STARTDATE# - Project Task start date #STATUS# - Project Task status #TYPE# - Project Task type.
#VALUE#>. #CONTENT# - List of Content - Operations Item. #ABSTRACT# - Operation abstract (abstract) #ALIAS# - Operation alias (<i>Alias:</i> #ALIAS#<br>) #CONCURRENCY# - Operation concurrency (blank if not set) #CONST# - Operation constant (const) #CONSTRAINTS# - List of Method Constraint #ISQUERY# - Operation IsQuery (isQuery) #NAME# - Operation name #NOTE# - Operation notes. #PARAMS# - List of Content Operations Item Parameters #SCOPE# - Operation Scope #STATIC# - Operation IsStatic (static) #STEREOTYPE# - Operation stereotype #TAGLABEL# - static text (Tags) #TAGS# - Attribute tags ("Property Name=Property Value<br>") #TYPE# - Operation type #DEFAULT# - Op Parameter default #GUID# - Op Parameter GUID #KIND# - Op Parameter kind #NAME# - Op Parameter name #NOTES# - Op Parameter notes #STEREOTYPE# - Op Parameter stereotype #TYPE# - Op Parameter type.
#CONTENT# - List of Content Resource Allocation Item. #ACTUAL# - Resource actual time #ENDDATE# - Resource end date #EXPECTED# - Resource expected date #NOTES# - Resource notes #PERCENT# - Resource percent complete #RESOURCE# - Resource name #ROLE# - Resource role #STARTDATE# - Resource start date #TIME# - Resource time.
None. None.
1241
Fields #FIELD# #VALUE#. None. #CONTENT#. #LINKDOC# - Linked Document. #CONTENT# - List of Linked Requirement Item. #DIFF# - Linked Requirement difficulty #NAME# - Linked Requirement name #PRIORITY# - Linked Requirement priority #STATUS# - Linked Requirement status.
Javascript
Linked Section
#ITEMS# #TITLE#. #CONNECTION# ?? #IMAGE# - The file path of the images #LINK# #NOTES# - The connector notes #NUMBER# - A unique number used to identify div elements #SOURCEROLE# #SOURCEROLENOTES# #STEREOTYPE# #TARGETROLE# #TARGETROLENOTES# #TYPE#.
#CONTENT# - List of Maintenance Line Item. #DATEREPORTED# - Maintenance date reported #DATERESOLVED# - Maintenance date resolved #IMAGE# - The file path of the images #NOTES# - Maintenance notes #NUMBER# - A unique number used to identify div elements #PRIORITY# - Maintenance priority #PROBLEM# - Maintenance name #REPORTEDBY# - Maintenance reported by #RESOLVEDBY# - Maintenance resolved by #RESOLVERNOTES# - Maintenance resolved notes #STATUS# - Maintenance status #TYPE# - Maintenance type #VERSION# - Maintenance version.
Method Constraint
1242
Section
#CONTENT# - List of Package Content Row. #NAME# - Link to Package (<a href="#Link to file#">#Package name#</a>) #TYPE# - Link to Image (<img src="#path to image#">). #CONTENT# - Contains Body - Diagram through to Body - Object #TITLE# - Current package name. #CSS# - Style Sheet to use #HOME# - A link to the start page #JS# - Javascript to use #TITLE# - Current package name #TOC# - To be established.
Page - Index
None. #CONTENT# - List of Object Requirement Item. #DIFF# - Requirement difficulty #NAME# - Requirement name #NOTES# - Requirement notes #PRIORITY# - Requirement priority #STABILITY# - Requirement stability #STATUS# - Requirement status #TYPE# - Requirement type.
#CONTENT# - List of Scenario Item. #IMAGE# - The file path of the images #NOTES# - Scenario notes #NUMBER# - A unique number used to identify div elements #SCENARIO# - Scenario name #TYPE# - Scenario type.
#CONTENT# - List of 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 value if type is boolean (value is true or false).
#CONTENT# - List of Test Cases Line Item. #ACCEPTANCE# - Test case acceptance notes #CHECKEDBY# - Test case checked by
1998-2009 Sparx Systems Pty Ltd
1243
Section
Fields #CLASS# - Test case class (Unit, Integration, System, Acceptance, Scenario) #IMAGE# - The file path of the images #INPUT# - Test case input notes #NOTES# - Test case notes #NUMBER# - A unique number used to identify div elements #RESULTS# - Test case result notes #RUNBY# - Test case run by #RUNDATE# - Test case last run #STATUS# - Test case status #TEST# - Test case name #TYPE# - Test case type.
Part
XVI
1245
UML Dictionary |
16 UML Dictionary
Recommended Reading:
In addition to the UML Specification available from the OMG, two books that provide excellent introductions to UML are:
UML Dictionary |
1246
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
1247
Types of Diagram
There are two major groupings of UML diagrams: Structural Diagrams 1293 which depict the structural elements composing a system or function, reflecting the static relationships of a structure, or run-time architectures. Behavioral Diagrams 1247 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 1306 diagrams Custom 1308 diagrams Requirements 1310 diagrams Maintenance 1311 diagrams User Interface 1312 diagrams Database 1313 diagrams Business Modeling and Business Interaction
1314
diagrams.
Enterprise Architect also supports diagram types specific to MDG Technologies 489 , including integrated technologies such as Archimate 496 , BPMN 525 , BPEL 498 , Data Flow Diagrams 529 , SysML 543 , SPEM 537 , Iconix 530 and Mind Mapping 533 .
Activity Diagrams
Activity diagrams 1248 model the behaviors of a system, and the way in which these behaviors are related in an overall flow of the system.
capture Use Cases and relationships among Actors and the system; they describes
1248
the functional requirements of the system, the manner in which external operators interact at the system boundary, and the response of the system.
Timing Diagrams
Timing diagrams 1264 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 1280 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 relationships.
1289
Example Diagram
The following diagram illustrates some of the features of Activity diagrams, including Activities, Actions, Start Nodes, End Nodes and Decision points.
1249
pages
120
1250
Example Diagram
The following diagram illustrates some features of Use Case diagrams:
1251
pages
116
of the Enterprise
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.
1252
Example Diagram
The following diagram illustrates some features of State Machine diagrams. The Saved State is a Composite 1362 State, and enclosed States are sub-states 1362 . Initial and final pseudo-states 1256 indicate the entry to and exit from the State Machine. Composite States and sub-states are both State 1361 elements, a Composite State being an expanded State element that encloses other State elements, which are then referred to as substates. Composite States and State Machines can also contain Regions 1255 . 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 230 checkbox is selected in the Objects page of the Options dialog.
1253
You have two options for exposing the contents of a composite State, such as Saved. Firstly, you can doubleclick 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.
1254
pages
120
of the Enterprise
1255
16.1.1.3.1 Regions
Regions can be created in Composite States 1362 or State Machines 1361 on a State Machine diagram 1252 . 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.
1256
2. Create the Regions of a State, which can be named or anonymous. 3. Click on the OK button.
16.1.1.3.2 Pseudo-States
Pseudo-states are a UML 2.1.1 abstraction for various types of transient vertices used in State Machine 1252 diagrams. Pseudo-states are used to express complex transition paths. The following types of pseudo-state are available: Initial 1350 Entry Point 1340 Exit Point 1343 Choice 1329 Junction 1355 History 1349 Terminate 1372 Final 1343 Fork 1347 Join 1348
1257
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.
1258
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 1258 State Machine Table Operations 1260
1259
Use to Select the required table format: State - Trigger: rows represent States, each state name in a left edge cell; columns represent Triggers, each trigger name in a column header cell; the intersection of a row and column identifies the Transition (if there is one); the Transition cell displays information about the next State and the condition (guard) of the Transition Trigger - State: as above, except that rows represent triggers and columns represent states State - Next State: both rows and columns represent states; intersection of row and column defines the transition (if there is one) from the row state to the column state.
Cell Size Transition Cell Width Transition Cell Height Left Edge Cell Width Top Edge Cell Height Cell Color State/Trigger Cell Select the color of the row and column title cells. Specify the width of the transition cells (that is, the column width). Specify the height of the transition cells (that is, the row height). Specify the width of the left edge (row title) cells. Specify the height of the top edge (column title) cells.
1260
Use to Select the color of the enumeration (row/column numbering) cells. Note: You must select at least one of the Enable State Enumeration and Enable Event Enumeration checkboxes to set this color.
Select the color of the transition cells (in the main body of the table).
Highlight Zones Related Highlight the cells for all elements involved in a selected transition - the initial state, the target state, and the trigger. to Selected Transition Highlight Color Use Different Color for Target State Target Zone Color Display Options Always Display an Empty State Zone Add an empty row (and, on a State - Next State table, an empty column) to the 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 Enumeration Prefix Enable Event Enumeration Prefix Sample State Table Advanced Restore Defaults Apply Add a cell to each state title cell, to number the state. Numbering starts at 0. Select the color of the highlight. Highlight the cell for the target element in a transition in a different color to the cell for the source element. Select the color of the highlight.
If required, type a prefix for the state number or delete the default S to have no prefix. Add a cell to each event or trigger title cell, to number the event. Numbering starts at 0. If required, type a prefix for the event number or delete the default E to have no prefix. Display a preview of the table format as you define it. Define diagram options. The State Machine Diagram Properties displays. Reapply the State Table diagram default values. Apply changed options to the State Table diagram.
318
dialog
Overview
As a State Machine table 1256 is a variant of a UML State Machine diagram 1252 , 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 Enterprise Architect UML 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
1998-2009 Sparx Systems Pty Ltd
1261
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 Change Size of State Machine Table 1261 Insert New State (and Substate) 1261 Insert Trigger 1262 Insert/Change Transition 1262 Reposition State/Trigger Cells 1263 Add Legend 1263 Find Cell in State Machine Diagram 1263 State Machine Table Conventions 1263 Export State Table To CSV File 1264
1261
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.
1262
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.
1263
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 Enterprise Architect UML 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):
1264
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.
, Interaction Overview
A Timing diagram defines the behavior of different objects within a time-scale. It provides a visual representation of objects changing state and interacting over time. You can use Timing diagrams to define hardware-driven or embedded software components; for example, those used in a fuel injection system or a microwave controller. You can also use Timing diagrams to specify time-driven business processes. To create and edit a Timing diagram, see the following topics: Create a Timing Diagram 1266 Set a Time Range 1266 State Lifeline 1364 Value Lifeline 1375 Edit a Timing Diagram 1266 Time Intervals 1274 Message (Timing Diagram) 1442
1265
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).
pages
119
1266
Timing diagrams describe behavior of both individual classifiers and interactions of classifiers, focusing attention on time of occurrence of events causing changes in the modeled conditions of the Lifelines. The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 519) also states: 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.
1267
Configure Timeline dialog - States Tab 1271 Configure Timeline dialog - Transitions Tab
1273
element
150
and transitions
1268
Add States
1. Click on the State Lifeline element. The New State button ( the bottom left of the element. ) and Edit States button ( ) display at
1268
2. Click on the New State button. The New State dialog displays.
3. In the State field, type the name of the state. 4. Click on the OK button. 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 ( 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
1272
) on the edge
, or
1272
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
1271
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.
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
1998-2009 Sparx Systems Pty Ltd
1269
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
1273
1270
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.
1270
Add States
This is similar to adding states to a State Lifeline 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 Timeline dialog.
1271 1267
element.
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 ( ).
1998-2009 Sparx Systems Pty Ltd
1271
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. 3. Edit the remaining fields as necessary. 4. Click on the OK button to save the changes.
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.
1272
The Configure Timeline dialog defaults to the States tab. All states currently defined for the Lifeline element are listed in the States panel.
1273
1. Display the Configure Timeline dialog. 2. Click on the Create Continuous Numeric States button. The Numeric Range Generator dialog displays. 3. In the High Value and Low Value fields, type the upper and lower values of the range. 4. In the Step Value field, type the increase interval. 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.
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.
1274
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.
The context menu displays. 2. Select the Create Time Interval option. The Time Interval displays down all the timeline elements, as a narrow pale band with a blue compression box at the top.
1275
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.
1276
Notice: Item Description The compression toggle boxes: is expanded, click on this to compress the selected time interval is compressed, click on this to expand the selected time interval again.
The compressed sections of the timelines themselves, in all elements. If there is space between the paired symbols, there are transitions within the compressed section. If the timeline continues through the paired symbols there are no transitions in the compressed section. 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 1277 .
1277
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 1278 . 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.
Selected Intervals
Note: The Copy, Cut and Delete operations act on all selected Time Intervals over the whole diagram, not just the current one.
1278
To select and update specific Time Intervals, right-click on the Interval Bar within an interval. The following context menu displays.
Use to 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 interval. Switch the selection or deselection of the Time Interval within the selected 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 1276 .
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 1279 , below. Delete the Time Interval. Copy the transitions for all selected Time Intervals. Copy and delete the selected transitions from the diagram. 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 the selected transitions from the diagram. 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 current Time Interval are moved left. Add time to the timeline and move all transitions and time intervals to the right. Also expand the duration of the current Time Interval.
Insert Time
1279
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 the timeline and compresses a single transition state. 1. Right-click on the timeline (rather than the Interval Bar) just after a transition. The context menu displays.
2. Click on the Compress menu option. Enterprise Architect creates a new Time Interval covering the period from the selected transition up to the next transition, and then compresses that Time Interval. 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. Menu Option Create Time Interval Expand all Time Intervals Compress all Time Intervals Paste Combine Use to Create a single Time Interval
1274
Expand all Time Intervals over the whole diagram. Compress all Time Intervals over the whole diagram. 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.
Delete all the transitions and then pastes the copied transition within the copied time frame. Insert time, moving all transitions and Time Intervals to the right to make room to paste in the copied transitions.
1280
Use to 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.
4. Select the timeline to paste transitions to and right-click on the Interval Bar. The context menu displays. 5. Select one of the paste operations. Note that states are created if they don't already exist in the timeline. Note: Any new states created might be in the wrong order. You can change the order via the diagram quick buttons 1267 .
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 having collision problems, use [Shift]+select to shift transitions for a single Timeline element.
A Sequence diagram is a structured representation of behavior as a series of sequential steps over time. It is used to depict work flow, message passing and how elements in general cooperate over time to achieve a result. Each sequence element 1284 is arranged in a horizontal sequence, with messages passing back and forward between elements. Messages on a Sequence diagram can be of several types; the Messages can also be configured to reflect the operations and properties of the source and target elements (see the Notes in the Message 1430 topic). An Actor element can be used to represent the user initiating the flow of events. Stereotyped elements, such as Boundary 1398 , Control 1400 and Entity 1401 , can be used to illustrate screens, controllers and database items, respectively. Each element has a dashed stem called a lifeline, where that element exists and potentially takes part in the interactions. To configure a Sequence diagram, see the following topics: Denote the Lifecycle of an Element Layout of Sequence Diagrams 1283 Sequence Element Activation 1285 Lifeline Activation Levels 1286 Message Label Visibility 1288
1282
1281
Change the Top Margin 1288 Change the Timing Details 1436 . Also take note of the important information in the Sequence Diagrams and Version Control
1284
topic.
Robustness diagrams, used extensively in ICONIX, can be created as Sequence diagrams. To toggle the numbering of messages on a Sequence diagram, select or deselect the Show Sequence Numbering 228 checkbox on the Options dialog.
Example Diagram
The following example Sequence diagram demonstrates several different elements:
118
pages
118
of the Enterprise
1282
1283
1284
Sequence diagrams are commonly used as explanatory models for Use Case scenarios. By creating a Sequence diagram with an Actor and elements involved in the Use Case, you can model the sequence of steps the user and the system undertake to complete the required tasks. An element in a Sequence diagram is usually either an Actor (the stimulus that starts the interaction) or a collaborating element. 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.
1285
The Lifelines must be in the same package as the diagram. The following illustration shows the Project Browser with two packages: P1, containing the elements, and P2, containing a Sequence diagram that uses those elements. The diagram itself is also shown.
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
1286
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.
1287
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.
1288
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.
1998-2009 Sparx Systems Pty Ltd
1289
2. Select the Embedded Elements | Embedded Elements menu option. 3. Select the checkbox against each Part or Port to show, and click on the Close button.
, Sequence Diagrams
1280
A Communication diagram 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. Communication diagrams employ ordered, labeled associations to illustrate processing. Numbering is important to indicate the order and nesting of processing. A numbering scheme could be: 1 1.1 1.1.1 1.1.2 1.2, and so on. A new number segment begins for a new layer of processing, and would be equivalent to a method invocation. Robustness diagrams are simplified Communication diagrams, but can be created in any diagram type that supports Boundary 1398 , Control 1400 and Entity 1401 elements.
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 1290 of the messages 1439 .
pages
118
of the
1290
Tip: Click on the following elements and connectors for more information. Communication Diagram Elements Communication Diagram Connectors
using
1291
, Sequence Diagrams
1280
Interaction Overview diagrams visualize the cooperation between other interaction diagrams to illustrate a control flow serving an encompassing purpose. As Interaction Overview diagrams are a variant of Activity diagrams 1248 , most of the diagram notation is the same, as is the process of constructing the diagram. Decision points, Forks, Joins, Start points and End points are the same. Instead of Activity 1324 elements, however, rectangular elements are used. There are two types of these elements: Interaction elements display an inline Interaction diagram, which can be any one of the four types Interaction Occurrence 1352 elements are references to an existing Interaction diagram: they are visually represented by a frame, with ref in the frame's title space; the diagram name is indicated in the frame contents. To create an Interaction Occurrence, simply drag an Interaction diagram from the Project Browser onto your Interaction Overview diagram. The ref frame displays, encapsulating an instance of the Interaction diagram.
Example Diagram
The following example depicts a sample sale process, shown in an Interaction Overview diagram, with subprocesses 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.
1292
pages
120
of the Enterprise
1293
Class Diagrams
Class diagrams 1295 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.
1294
Component Diagrams
Component diagrams 1304 illustrate the pieces of software, embedded controllers and such that make up a system, and their organization and dependencies.
Deployment Diagrams
Deployment diagrams architecture.
1301
show how and where the system is to be deployed; that is, its execution
Object Diagrams
Object diagrams
1297
Package Diagrams
Package diagrams amongst them.
1294
depict the organization of model elements into packages and the dependencies
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 318 dialog 318 , 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.
1295
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.
pages
116
Example Diagram
The pale Aggregation 1417 relationship indicates that the Class Account uses AddressBook, but does not necessarily contain AddressBook. The dark Composite Aggregation 1417 connectors indicate ownership or containment by the target Classes (at the diamond end) of the source Classes.
1296
pages
1314
116
Enterprise Architect also supports a number of stereotyped Class web page modeling. Tip:
Click on the following elements and connectors for more information. Class Diagram Elements Class Diagram Connectors
1297
Example Diagram
The following example first shows a simple Class diagram, with two Class
1378
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.
1298
pages
117
Enterprise Architect also supports a number of stereotyped Object business modeling. Tip:
1314
Click on the following elements and connectors for more information. Object Diagram Elements Object Diagram Connectors
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.
1299
The following diagram uses the Install Collaboration in a Collaboration Occurrence 1382 , 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.
pages
118
of the
Enterprise Architect also supports a stereotyped Collaboration to represent a Business Use Case Realization 1314 in business modeling. Tip: Click on the following elements and connectors for more information. Composite Structure Diagram Elements Composite Structure Diagram Connectors
1300
16.1.2.4.1 Properties
A property is a nested structure within a classifier, which is usually a Class 1378 or an Interface 1388 on a Composite Structure diagram 1298 . 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 1392 , libBooks and records, which are instances corresponding to the Classes Books and Computer respectively. After dragging Parts from the Enterprise Architect UML 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.
1301
1302
Deployment diagrams are ideal for using alternative images 312 for the objects that the elements represent. Such images can be substituted for the elements in the above diagram, as shown below:
1303
pages
122
of the Enterprise
1304
Example Diagram
The following diagram demonstrates some components and their inter-relationships. Assembly 1418 connectors connect the provided interfaces supplied by Product and Customer to the required interfaces specified by Order. A Dependency 1423 relationship maps a customer's associated account details to the required interface Payment, indicated by Order.
1305
pages
121
of the Enterprise
1306
1314
1307
1308
The below example reflects a Requirements diagram 1310 . Requirement elements 1408 can be linked back to Use Cases 1373 and Components 1383 in the system to illustrate how a particular system requirement is met. Change 863 and Defect (Issue) 862 elements look the same as Requirement elements and can be coded and managed in the same way. Screen design is supported through a stereotyped Screen design high level system prototypes.
1409
1411
Custom models provide a few extensions to the UML model and enable some exploratory and non-rigorous experimentation with model elements and diagrams.
1309
pages
126
1310
between specifications
Requirements can have relationships with other elements such as other Requirements and Use Cases. To view the traceability of a requirement, use the Hierarchy 194 window, which you access using the View | Hierarchy menu option (or press [Ctrl]+[Shift]+[4]).
of the
1311
pages
127
of the Enterprise
1312
pages
128
of the
1313
Note: Click on the following elements and connectors for more information. User Interface Diagram Elements User Interface Diagram Connectors
pages
130
1314
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:
1998-2009 Sparx Systems Pty Ltd
1315
1316
Models in UML are constructed from elements such as Classes 1378 , Objects 1389 , Interfaces 1388 , Use Cases 1373 , Components 1383 and Nodes 1389 , each of which has a different purpose, different rules and different notation. Model elements are used at different stages of the design process for different purposes. This topic provides an introduction to elements defined by UML, which together compose the backbone of modeling. Most conceivable modeling elements are stereotypes or extensions of the elements introduced in this topic. During early analysis, Use Cases, Activities, Business Processes, Objects and Collaborations are used to capture the problem domain During elaboration, Sequence diagrams, Objects, Classes and State Machines are used to refine the system specification Components and Nodes are used to model larger parts of the system as well as the physical entities that are created and deployed into a production environment. UML elements can be divided into two categories: those used on Behavioral Diagrams 1316 and those used on Structural Diagrams 1376 . This basic set can be extended 1397 almost without limit using Stereotypes 477 and UML Profiles 466 .
. For more
Action 1317 , Activity 1324 , Actor 1328 Central Buffer Node, 1329 Choice 1329 , Collaboration 1381 , Combined Fragment 1330 Datastore 1336 , Decision 1336 , Diagram Frame 1338 , Diagram Gate 1339 Endpoint 1340 , Entry Point 1340 , Exception 1341 , Expansion Region 1341 , Exit Point 1343 Final 1343 , Flow Final 1344 , Fork 1345 History 1349 Initial 1350 , Interaction, 1351 Interaction Occurrence 1352 , Interruptible Activity Region 1353 Join 1345 , Junction 1355 Lifeline 1356 Note 1358 Object 1389 Package 1392 , Partition 1358 Receive 1359 , Region 1360 Send 1361 , State 1361 , State Lifeline 1364 , State/Continuation 1365 , Structured Activity 1367 , State Machine Synch 1370 , System Boundary 1370 Terminate 1372 , Trigger 1372 Use Case 1373 Value Lifeline 1375 Note: Actor, Collaboration, Note, Object and Package elements are used in both Behavioral diagrams and Structural diagrams.
1369
1317
16.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 1248 . Actions can be thought of as children of Activities 1324 . Both
1318
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 1323 notes, and certain properties can be graphically depicted 1318 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 1321 . An Action can be depicted as an Expansion Node Region 1341 .
1321
Toolbox Icon
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.
1319
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 Action 1317 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.
1320
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
1320
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.
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 1543 or for the target of a hyperlink 1403 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.
1321
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 then double-click on the item to select it.
394
Representing an Action 1317 as an Expansion Node is a shorthand notation to indicate that the Action comprises an Expansion Region 1341 . 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
1317
1322
values to the Action, whereas an output pin contains the results from that Action. Action Pins are used below to connect two Actions:
See UML Superstructure Specification, v2.1.1, Figure 12.110, p. 391. Action Pins can be further characterized as defining exception parameters, streams, or states. Associating a state with a pin defines the state of input or output values. For instance, the pin could be called Orders, but the state could be Validated or Canceled. To add an Action Pin to an Action, right-click on the Action to display the context menu and select the Embedded Elements | Add Action Pin menu option. To change the type of an Action Pin, right-click on the pin and select the Advanced | Custom Properties context menu option. The following properties can be set:
1323
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.
1324
16.2.1.2 Activity
An Activity organizes and specifies the participation of subordinate behaviors, such as sub-Activities or Actions 1317 , to reflect the control and data flow of a process. Activities are used in Activity diagrams 1248 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 1326 .
You can define an Activity as a composite element, either during creation or during later edits. However, when creating a composite Activity element you can also use the Structured Activity element, which is tailored to this purpose. If converting an Activity element, right-click on the element and select the Advanced | Make Composite context menu option. The New Structured Activity dialog displays; for information on this dialog, see the Structured Activity 1367 topic. Certain properties can be graphically depicted organized by Activity Partitions 1327 .
1325
Toolbox Icon
1325
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: Occurrences of primitive functions, such as arithmetic functions. Invocations of behavior, such as activities. Communication actions, such as sending of signals. Manipulations of objects, such as reading or writing attributes or associations. Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation that is implemented by an activity containing actions that execute before the call action completes.
To define these properties, right-click on the Activity and select the Advanced | Custom Properties context menu option. The following dialog displays:
1326
The following example depicts two entry parameters and one output parameter defined for the Activity.
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 1321 , 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:
1327
To define Partitions: 1. Right-click on the Activity element. The context menu displays. 2. Select the Advanced | Partition Activity menu option. The Activity Partitions dialog displays.
1328
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.
16.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 1373 . 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 1280 . Enterprise Architect supports a stereotyped Actor element for business modeling 1314 . The business modeling elements also represent Actors as stereotyped Objects.
Toolbox Icon
1329
An actor models a type of role played by an entity that interacts with the subject (e.g. by exchanging signals and data), but which is external to the subject. ... Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., "role") of some entity that is relevant to the specification of its associated Use Cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances.
A Central Buffer Node is an object node for managing flows from multiple sources and destinations, represented in an Activity diagram 1248 . 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
16.2.1.5 Choice
The Choice pseudo-state 1256 is used to compose complex transitional paths in, for example, a State Machine diagram 1252 , 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 1361 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 1355 pseudo-state, the Choice pseudo-state's distinction is in deciding transition paths at run-time.
1330
Toolbox Icon
A Combined Fragment reflects a piece or pieces of interaction (called interaction operands) controlled by an interaction operator 1333 , 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 1280 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
1998-2009 Sparx Systems Pty Ltd
1331
alternative fragment is created 1332 , 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.
1332
Toolbox Icon
in Enterprise Architect.
1. Drag the Fragment element from the Interaction Elements page of the Enterprise Architect UML Toolbox. The following dialog displays:
1333
2. In the Type field, click on the drop-down arrow and select the interaction operator. See the Interaction Operators 1333 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.
ignore
1334
Interaction Operator Use to consider ref 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. Provide a reference to another diagram. Note: The ref fragment is not created using the method described in the Create a Combined Fragment 1332 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.
1998-2009 Sparx Systems Pty Ltd
1335
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.
1336
16.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 1446 connectors to connect elements (such as Activities 1324 ) 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, rightclick on the Object Flow and select the Attach Note or Constraint context menu option. A dialog indicates other flows in the Activity diagram 1248 , 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
16.2.1.8 Decision
A Decision is an element of an Activity diagram 1248 or Interaction Overview diagram 1291 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 1356 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:
1337
See UML Superstructure Specification, v2.1.1, figure 12.77, p. 363. Used as a merge:
See UML Superstructure Specification, v2.1.1, figure 12.106, p. 388. 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
1338
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 1330 with the Interaction Operator 1334 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.
1339
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 312 .
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 1282 , Timing 1264 , Communication 1289 or Interaction Overview 1291 ), interaction occurrences 1352 and combined fragments 1330 (to specify the expression).
Toolbox Icon
1340
16.2.1.11 Endpoint
An Endpoint is used in Interaction diagrams (Sequence 1282 , Timing 1264 , Communication 1289 or Interaction Overview 1291 ) to reflect a lost or found message in sequence. To model this, drag an Endpoint element onto the workspace. With Sequence diagrams 1280 , drag a message from the appropriate lifeline to the Endpoint. With Timing diagrams 1264 , 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
1341
Entry Point pseudo-states 1256 are used to define the beginning of a State Machine for each region, directing the initial concurrent state configuration.
1252
Toolbox Icon
16.2.1.13 Exception
The Exception Handler element defines the group of operations to carry out when an exception occurs. In an Activity diagram 1248 , the protected element can contain a set of operations and is connected to the exception handler via an Interrupt Flow 1429 connector. Any defined error contained within an element's parts can trigger the flow to move to an exception.
Toolbox Icon
You create 1343 an Expansion Region as one variant of a Region Region 1353 ).
1360
On an Activity diagram 1248 , 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 streamtype Expansion Region indicates that the input and output come in and exit as streams, and that the
1342
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
1343
2. In the Kind field, click on the drop-down arrow and select the concurrency attribute.
Exit Points are used in Submachine states 1369 and State Machines 1361 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 1256 used in the State Machine 1252 diagram.
Toolbox Icon
16.2.1.16 Final
There are two nodes used to define a Final state in an Activity 1324 , both defined in UML 2.1 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 1248 is aborted. The other type of final node, Flow Final 1344 , depicts
1344
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 1347 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
1350
node.
See UML Superstructure Specification, v2.1.1, figure 12.91, p. 374. 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.1 as of type Final Node. The Flow Final element depicts an exit from the system, as opposed to the Activity Final 1343 , 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 1248 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 1347 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
1998-2009 Sparx Systems Pty Ltd
1345
activity is completed, after the control flow reaches the Final node, that all flows stop.
See UML Superstructure Specification, v2.1.1, figure 12.91, p. 374. 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 reused 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
16.2.1.18 Fork/Join
The Fork/Join elements have different modes of use, as follows: To fork or split the flow into a number of concurrent flows. To join the flow of a number of concurrent flows. To both join and fork a number of incoming flows to a number of outgoing flows. These elements are used in both Activity 1248 and State Machine 1252 diagrams. With respect to State Machine diagrams, Forks 1347 and Joins 1348 are used as pseudo-states 1256 . Other pseudo-states include history states 1349 , entry points 1340 and exit points 1343 . 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:
1346
See UML Superstructure Specification, v2.1.1, figure 12.95 p. 377. Join the flow of a number of concurrent flows:
See UML Superstructure Specification, v2.1.1, figure 12.103, p. 384. Join and Fork a number of incoming flows to a number of outgoing flows:
Toolbox Icon
1347
16.2.1.18.1 Fork
See UML Superstructure Specification, v2.1.1, figure 12.95 p. 377. These elements are used in both Activity 1248 and State Machine 1252 diagrams. With respect to State Machine diagrams, a Fork pseudo-state 1256 signifies that its incoming transition comes from a single state, and it has multiple outgoing transitions. These transitions must occur concurrently, requiring the use of concurrent regions 1360 , as depicted below in the Composite State 1362 . Unlike Choice 1329 or Junction 1355 pseudo-states, Forks must not have triggers or guards. The following diagram demonstrates a Fork pseudo-state dividing into two concurrent regions, which then return to the End State via the Join 1348 pseudo-state.
1348
16.2.1.18.2 Join
See UML Superstructure Specification, v2.1.1, figure 12.103, p. 384. The Join element is used by Activity 1248 and State Machine 1252 diagrams. The above example illustrates a Join transition between Activities. With respect to State Machine diagrams, a Join pseudo-state 1256 indicates multiple States 1361 concurrently transitioning into the Join and onto a single State. Unlike Choice 1329 or Junction 1355 pseudo-states, Joins must not have triggers or guards. The following diagram demonstrates a Fork 1347 pseudo-state dividing into two concurrent Regions 1360 , which then return to the End State via the Join.
1349
16.2.1.19 History
There are two types of History pseudo-state 1256 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 1362 ; 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.
Toolbox Icon
1350
16.2.1.20 Initial
The Initial element is used by Activity 1248 and State Machine 1252 diagrams. In Activity diagrams, it defines the start of a flow when an Activity 1324 is invoked. With State Machines, the Initial element is a pseudo-state 1256 used to denote the default state of a Composite State 1362 ; there can be one Initial vertex in each Region 1360 of the Composite State. This simple example shows the start of a flow to receive an order.
See UML Superstructure Specification, v2.1.1, Figure 12.97, p. 378. The activity flow is completed by a Final 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.
1343
or Flow Final
1344
node.
Toolbox Icon
1351
An initial node is a control node at which flow starts when the activity is invoked.
16.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 1280 Interaction Overview Communication 1289 Timing 1264 .
1291
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 Code Generation From Behavioral Model 898 topic). An Interaction element can also be set as the classifier for an Interaction Occurrence 1352 in a Sequence diagram, or for a Call Behavior Action 1318 in an Activity diagram. Establishing such an association (between a behavior 407 and a 407 behavior call 407 ) facilitates adding arguments 410 that can be individually mapped to the associated behavior's parameters.
1352
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.)
An Interaction Occurrence (or InteractionUse) is a reference to an existing Interaction (Sequence 1282 ) diagram. 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. To create an Interaction Occurrence, simply open a Sequence diagram (preferably contained within an Interaction element 1351 ) and drag another Sequence diagram (also preferably contained within an Interaction element) into its workspace. A dialog displays, providing configuration options. The resulting Interaction Occurrence acts as an invocation of the original Interaction. You use the Call 407 tab 407 of the element Properties dialog to set up the actual arguments 410 of the Interaction and also to change to a different associated Interaction element. The following figure illustrates the use of an Interaction Occurrence in another Interaction (Sequence) diagram. You can display the sequence represented by the Interaction Occurrence by double-clicking on the element.
1353
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).
1354
You create 1354 an Interruptible Activity Region as one variant of a Region Region 1341 ).
1360
In an Activity diagram 1248 , an Interruptible Activity Region surrounds a group of Activity 1324 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.
See UML Superstructure Specification, v2.1.1, figure 12.100, p. 381. To create an Interruptible Activity Region, click on this Add an Interruptible Activity Region
1354
link.
Toolbox Icon
1353
1355
16.2.1.24 Junction
Junction pseudo-states 1256 are used to design complex transitional paths in State Machine 1252 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 1347 pseudostate. Unlike Forks or Joins 1348 , 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
1356
other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices.
16.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> 394 dialog displays which you use to locate the required project classifiers. Lifelines are available in Sequence 1280 diagrams. There are different Lifeline elements for Timing diagrams 1264 (State Lifeline 1364 and Value Lifeline 1375 ) 1375 ; however, although the representation differs between the two diagram types, the meaning of the Lifeline is the same.
Toolbox Icon
16.2.1.26 Merge
A Merge Node brings together a number of alternative flow paths in Activity 1248 , Analysis 1306 and Interaction Overview 1291 diagrams. For example, if a Decision 1336 is used after a Fork 1347 , the two flows coming out of the Decision must be merged into one before going to a Join 1348 ; 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 1446 or all control flows 1422 .
Toolbox Icon
1357
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.
1364
or Value
1375
Toolbox Icon
A Message Label is an alternative way of denoting Messages 1442 between Lifelines, which is useful for 'uncluttering' Timing diagrams 1264 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
1358
16.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 1446 connector. Both Note and Notelink are available in any Enterprise Architect diagram, through the Common 114 pages of the Enterprise Architect UML Toolbox. A Note is also called a Comment. A Constraint is a form of Note, identifying a constraint on other elements. As for a Note, you can connect the Constraint element to other elements using a Notelink connector. This element is just a means of documenting the fact that there are constraints; it has no impact on the other elements. You define the types of constraint in the project reference data 806 , apply them to the element in the element Properties 386 dialog, and manage them through the Rules & Scenarios 194 window.
Toolbox Icon
16.2.1.30 Partition
Activity Partitions 1327 are used to logically organize an Activity Activity diagram 1248 , but help structure all or parts of the view.
1324
The following example depicts the partitioning between the Classes Process Payment and Order Processor.
1359
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 the current diagram using the element context menu Dockable 343 option. For Partitions, the option defaults to selected.
Toolbox Icon
16.2.1.31 Receive
A Receive element is used to define the acceptance or receipt of a request, in an Activity diagram 1248 . 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 1361 element), the payment is confirmed and the flow continues to ship the order.
1360
See UML Superstructure Specification, v2.1.1, figure 12.26, p. 312. To depict an Accept Time Event, use the standard Receive element from the Enterprise Architect UML Toolbox. Right-click on this element, and select the Advanced | Accept Time Event context menu option. The following example shows the hourglass-shaped Accept Time Event Action:
Toolbox Icon
16.2.1.32 Region
Enterprise Architect supports two types of Region element: Expansion Region 1341 Interruptible Activity Region
1353 1248
When you add a Region element to an Activity diagram select the Region type.
1361
Toolbox Icon
16.2.1.33 Send
The Send element is used to depict the action of sending a signal, in an Activity diagram of a Receive 1359 element.
1248
. It is the opposite
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
16.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 1378 , 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 1362 , both created from the State element from the Enterprise Architect UML Toolbox. Furthermore, there are pseudo-states 1256 , resembling some aspect of a State but with a pre-defined implication. Pseudo-states model complex transitional paths, and classify common State Machine 1252 behavior. You can define entry, internal and exit actions for a State using operations
397 .
If a State element has features such as attributes or operations, the depiction of the element in a diagram has
1362
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
1363
1364
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 1375 , both used in Timing diagrams 1264 . 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:
See UML Superstructure Specification, v2.1.1, figure 14.29, p. 519. A State Lifeline consists of a set of transition points. Each transition point can be defined with the following properties: Property At time Transition to Event Timing constraints Timing observations Duration constraints Description Specifies the starting time for a change of state. Indicates the state to which the lifeline changes. Describes the occurring event. 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). Provides information on the time of a state change or sent message. 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. Indicates the interval of a lifeline at a particular state, begun from a change in state or message receipt.
Duration observations
In the example diagram above, the OK transition point has these properties: Property At Time Value 18 ms
1998-2009 Sparx Systems Pty Ltd
1365
Property Transition to Event Timing constraints Timing observations Duration constraints Duration observations
Toolbox Icon
16.2.1.36 State/Continuation
The State/Continuation element serves two different purposes for Interaction (Sequence 1280 ) diagrams, as State Invariants 1367 and Continuations 1365 . Enterprise Architect prompts you to identify the purpose when you create the element.
Toolbox Icon
16.2.1.36.1 Continuation
A Continuation is used in seq and alt Combined Fragments 1330 , 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 1365 element onto the diagram from the Interaction Elements page of the Enterprise Architect UML Toolbox. For the following continuation example, an alt Combined Fragment has Continuations pathSucc and pathFail. These Continuations are located within the Interaction Occurrence 1352 ConnHandler, which has subsequent events based on the continuation.
1366
The following diagram shows the interaction referenced by the Interaction Occurrence.
1367
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.
1368
Simple Composite - represents an arrangement of activities that take place independent of each other Structured Activity node - represents an ordered arrangement of activities; that is, activities that have relationships Conditional node - represents an arrangement of activities where choice determines which activities are performed Sequential node - represents a sequential arrangement of activities Loop node - represents a sequence of activities that are - or can be - repeated on the same object. To create a Structured Activity, drag the Structured Activity element from the Activity Elements page in the Enterprise Architect UML Toolbox onto the diagram. The New Structured Activity dialog displays, on which you specify which type of Structured Activity to create.
To display the Activity diagram represented by the Structured Activity element, double-click on the element.
1369
Toolbox Icon
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.
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.
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.
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 1255 on a State Machine Element.
1370
Toolbox Icon
16.2.1.39 Synch
A Synch state is useful for indicating that concurrent paths of a State Machine bringing the paths to a synch state, the emerging transition indicates unison.
1252
Toolbox Icon
A System Boundary 1370 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 1373 , 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 such as a Class , Component or Sub-system (Actor ).
394
1378
1383
1328
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.
1371
The following properties of a System Boundary can be set: the name, the border style horizontal or vertical swim lanes.
1371
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 314 menu option to select an image.
Toolbox Icon
1372
16.2.1.41 Terminate
1256
1252
Toolbox Icon
16.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 two ways: As a property of a Transition 1452 relationship As an event in a State Machine Table 1262 . 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
1998-2009 Sparx Systems Pty Ltd
1373
properties. 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 result of the modification of data in a database.
1098
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 1280 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. The following is an example Use Case model:
1374
If extending a Use Case, you can specify the points of extension with Use Case Extension Points 1374 . To display the attributes, operations or constraints of a Use Case on a diagram, use Rectangle Notation 1375 . Enterprise Architect also provides two stereotyped Use Cases - the Test Case 1314 .
1410
Toolbox Icon
To work with extension points, follow the steps below: 1. Right-click on the Use Case element. The context menu displays. 2. Select the Advanced | Edit Extension Points... menu option. The Use Case Extension Points dialog displays, listing defined points for that Use Case.
3. Select an extension point in the list and click on the appropriate button to edit or remove the extension
1998-2009 Sparx Systems Pty Ltd
1375
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
1328
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 1364 , both used in Timing diagrams 1264 . 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:
See UML Superstructure Specification, v2.1.1, Figure 14.30, p. 520. A Value Lifeline consists of a set of transition points. Each transition point can be defined with the following properties: Property At time Description Specifies the starting time for a change of state.
1376
Description Indicates the state to which the Lifeline will change. Describes the occurring event. Refers to the time taken for a state to change within a Lifeline, or the time taken to transmit a message. Provides information on the time of a state change or sent message. 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. Indicates the interval of a Lifeline at a particular state, begun from a change in state or message receipt.
Duration observations
In the example diagram above, the 10ms transition point has these properties: Property At Time Transition to Event Timing constraints Timing observations Duration constraints Text 10ms Waitcard Switch d..3*d
Duration observations
Toolbox Icon
. For more
1383
1377
Note: Actor, Collaboration, Note, Object and Package elements are used in both Behavioral diagrams and Structural diagrams.
16.2.2.1 Artifact
1378
An Artifact is any physical piece of information used or produced by a system, represented in a Deployment Diagram 1301 . 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.
Toolbox Icon
16.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 1379 or as a template or parameterized Class 1380 that specifies parameters that must be defined by any binding Class. A Class can have attributes 369 (data) and methods (operations 396 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
1295
1298
Enterprise Architect also supports a number of stereotyped Class elements to represent various entities in web-page modeling 1413 .
1379
Toolbox Icon
An Active Class indicates that, when instantiated, the Class 1378 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.
1380
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.
1381
Notation Example
16.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 1298 . 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 1389 ) connected as shown. The process for this Collaboration can be demonstrated by attaching an Interaction diagram (Sequence 1282 , Timing 1264 , Communication 1289 or Interaction Overview 1291 ).
1382
1382
topic.
1314
Enterprise Architect supports a stereotyped Collaboration to represent a Business Use Case Realization business modeling.
in
Toolbox Icon
Use a Collaboration Occurrence to apply a pattern defined by a Collaboration to a specific situation, in a Composite Structure diagram 1298 . The following example uses an occurrence, NWServer, of the Collaboration Install, to define the installation process of a network scanner. This process can be defined by an interaction attached to the Collaboration. (See the Collaboration 1381 topic for a representation of the Install Collaboration.)
1383
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.
16.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 1378 , or Components pieced together. As smaller Components come together to create bigger Components, the eventual system can be modeled, buildingblock style, in Component diagrams 1304 . By building the system in discrete Components, localization of data and behavior enables decreased dependency between Classes and Objects 1389 , providing a more robust and maintainable design.
1384
Toolbox Icon
A Deployment Specification (spec) specifies parameters guiding deployment of an artifact, as is necessary with most hardware and software technologies. A specification lists those properties that must be defined for deployment to occur, as represented in a Deployment diagram 1301 . An instance of this specification specifies the values for the parameters; a single specification can be instantiated for multiple artifacts. These specifications can be extended by certain component profiles. Examples of standard Tagged Values that a profile might add to a Deployment Specification are concurrencyMode with Tagged Values {thread, process, none} or transactionMode with Tagged Values {transaction, nestedTransaction, none}. The following example depicts the artifact RepositoryApp deployed on the server node, as per the specifications of RepositoryApp, instantiated from the Deployment Specification SystemSpec.
Toolbox Icon
1385
artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor.
16.2.2.7 Device
A Device is a physical electronic resource with processing capability upon which Artifacts 1377 can be deployed for execution, as represented in a Deployment diagram 1301 . 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 1377 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 Linked Documents 424 . 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
1386
16.2.2.9 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 1295 or Package diagrams 1294 , and in diagrams developed from the Metamodel 124 pages of the Enterprise Architect UML Toolbox.
Toolbox Icon
An Execution Environment is a node 1389 that offers an execution environment for specific types of components 1383 that are deployed on it in the form of executable artifacts 1377 . This is depicted in a Deployment diagram 1301 . 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
1387
The Expose Interface element is a graphical method of depicting the required or supplied interfaces 1388 of a Component 1383 , Class 1378 or Part 1392 , in a Component 1304 or Composite Structure 1298 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 1418 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 1248 , Analysis 1306 and Object diagrams. An Information Item is also represented by an Information Flow 1426 connector.
1297
Toolbox Icon
1388
One purpose of information items is to be able to define preliminary models, before having made detailed modeling decisions on types or structures. One other purpose of information items and information flows is to abstract complex models by a less precise but more general representation of the information exchanged between entities of a system.
16.2.2.13 Interface
An Interface is a specification of behavior (or contract) that implementers agree to meet. By implementing an Interface, Classes 1295 are guaranteed to support a required behavior, which enables the system to treat nonrelated elements in the same way; that is, through the common interface. You also use Interfaces in a Composite Structure 1298 diagram. Interfaces are drawn in a similar way to a Class 1378 , 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. Realization 1449 connectors to an Interface drawn as a circle are drawn as a solid line without target arrows.
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
1389
16.2.2.14 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 1301 to model the deployment of a system, and to show the physical allocation of implemented artifacts. They are also used in web modeling, from dedicated web modeling pages in the Enterprise Architect UML 108 Toolbox 108 .
Toolbox Icon
16.2.2.15 Object
An Object is a particular instance of a Class 1378 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 1390 . Early in analysis, Objects can be used to quickly capture all the things that are of relevance within the system domain, in an Object 1297 , Composite Structure 1298 or Communication 1289 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 393 topic. Enterprise Architect also supports a number of stereotyped Object business modeling.
1314
1390
Toolbox Icon
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.
1391
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.
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, type the required state (such as Awaiting Approval). Note: If the associated classifier has a child State Machine element, those states propagate into the dropdown list for this field, and you can select one of them instead. 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.
1392
16.2.2.16 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
16.2.2.17 Part
1378
or Interfaces
1388
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 1298 , 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 1300 , 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 property values
1392
for Parts.
Toolbox Icon
1393
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.
16.2.2.18 Port
Ports define the interaction between a classifier and its environment. Interfaces controlling this interaction can be depicted using the Interface element 1388 . Any connector to a Port must provide the required interface, if defined. Ports can appear on a contained Part 1392 , a Class 1378 , or the boundary of a Composite element 1400 . A Port is a typed structural feature or property of its containing classifier. Ports are typically created Class diagrams 1295 , Object diagrams 1297 and Composite Structure diagrams 1298 . You can expose an inherited Port, or redefine a Port
1394 1394
in
Toolbox Icon
1394
1. Click on the Port symbol in the Composite Elements page of the Enterprise Architect UML Toolbox and drag it to (or click on) the target host element. This creates an untyped, simple Port on the boundary, near the cursor position. 2. On the context menu of a suitable Class, Part or Composite element 1400 , select the Embedded Elements | Add Port menu option to add a new Port at the cursor position. 3. Drag a suitable classifier from the Project Browser onto a Class or Part. Enterprise Architect prompts you to add a typed Port or Part at the cursor position. The new Port is typed by the original dragged classifier. 4. Use the Embedded Elements dialog
1394
1395
16.2.2.19 Primitive
A Primitive element identifies a predefined data type, without any relevant substructure (that is, it has no parts in the context of UML).
Toolbox Icon
Enter the Primitive name and type, and any notes required. The following Types are available, as defined in the MOF specification.
1396
16.2.2.20 Qualifiers
A Qualifier is a property of an Association or objects.
1418
453
455
451
dialog.
Separate multiple Qualifiers 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.
1397
16.2.2.21 Signal
A Signal is a specification of Send 1361 request instances communicated between objects, typically in a Class 1295 or Package 1294 diagram. The receiving object handles the Received 1359 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
1398
Event Elements 1402 Hyperlinks 1403 N-Ary Association 1406 Process 1408 Requirements 1408 Screen 1409 Table 1411 UI Control Element 1411 Web Stereotypes 1413
477
For more information on the use of stereotypes in Enterprise Architecture, see the UML Stereotypes
topic.
The stereotypes used are: Boundary 1398 - for a system boundary (for example, a Login screen) Control 1400 - to specify an element is a controller of some process (as in the Model-View-Controller pattern) Entity 1401 - the element is a persistent or data element Also see the Business Modeling
1314
16.2.3.2 Boundary
or A Boundary is a stereotyped Object 1389 that models some system boundary, typically a user interface screen. You can also create a Boundary as a stereotyped Class 1378 . See the Create a Boundary 1399 topic. A Boundary is used in the conceptual phase to capture users interacting with the system at a screen level (or
1998-2009 Sparx Systems Pty Ltd
1399
some other boundary interface type). It is often used in Sequence diagrams. It is the View in the Model-View-Controller 1399 pattern.
1280
1306
Tip: Use Boundary elements in analysis to capture user interactions, screen flows and element interactions (or 'collaborations').
Toolbox Icon
or
1. In the Enterprise Architect UML Toolbox, select the More Tools | Analysis menu option. 2. From the Analysis Elements page, drag the Boundary element onto the diagram.
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.
1400
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 might show their contents instead of their usual notation. To enable this notation, rightclick on the element to open the context menu, then select the Advanced | Show Composite Diagram option.
16.2.3.4 Control
or A Control is a stereotyped Object 1389 that models a controlling entity or manager. A Control organizes and schedules other activities and elements, typically in Analysis 1306 (including Robustness), Sequence 1280 and Communication 1289 diagrams. It is the controller of the Model-View-Controller 1401 pattern.
1998-2009 Sparx Systems Pty Ltd
1401
1378
1401
topic.
Toolbox Icon
or
1. In the Enterprise Architect UML Toolbox, select the More Tools | Analysis menu option. 2. From the Analysis Elements page, drag the Control element onto the diagram.
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.
16.2.3.5 Entity
From:
Sequence Diagram
1280
1306
1402
An Entity is a stereotyped Object 1389 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 1401 pattern. You can also create an Entity as a stereotyped Class
1378
1402
topic.
Toolbox Icon
or
1. In the Enterprise Architect UML Toolbox, select the More Tools | Analysis menu option. 2. From the Analysis Elements page, drag the Entity element onto the diagram.
16.2.3.6 Event
The 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 Enterprise Architect UML Toolbox.
125
and Activity
120
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
1403
16.2.3.7 Feature
A Feature is a small, granular function or characteristic expressed in client-valued terms as a satisfaction of a requirement; for example: 'context-sensitive Help', or 'ability to reverse-engineer VB.Net'. Features are the primary requirements-gathering artifact of the Feature-Driven Design (FDD) methodology. They define the product feature that satisfies what a Requirement 1408 element has formalized as a contractual, testable, expected deliverable (for example: requirement - 'every element must provide context-sensitive Help'; feature - 'every element provides context-sensitive Help'). One Feature might realize one or more Requirements, and one Requirement might be realized by more than one Feature. Features also have relationships with Use Cases 1373 . A Use Case defines the interaction a user has with the system in order to satisfy one or more Requirements. The Feature identifies the facility that provides the means for that interaction. Feature elements are non-UML and are not related to UML-defined features, which are either BehavioralFeatures (operations 396 , or methods) or StructuralFeatures (Ports 1393 , Parts 1392 and attributes ). Feature elements are available from the Requirements page of the Enterprise Architect UML Toolbox. 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 230 page.
369
Toolbox Icon
16.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 Enterprise Architect UML Toolbox onto the diagram. (Alternatively, click on the Hyperlink icon in the UML Elements toolbar and then click on the diagram.)
1404
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 1320 displays to enable you to select that attribute. If you intend to hyperlink to 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 917 dialog 917 , 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 Rich Text Notes 139 toolbar. There are three alternative methods of creating a hyperlink, as explained in the following sections.
1405
2. Select the Other menu option. The New Action dialog displays, with the Other radio button selected. 3. Click on the drop down arrow on the field in the Select kind panel, and click on Hyperlink. 4. Click on the OK button. The Hyperlink Action element displays on the diagram. 5. Right click on the element and select the Advanced | Set Hyperlink menu option. The Hyperlink Details dialog displays. 6. Set the hyperlinks properties as described above.
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).
1406
An n-Ary Association element is used to model complex relationships between three or more elements, typically in a Class diagram 1295 . 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 1418 connector, but the relationships can include other types of connector.
1407
In the example above there is a relationship between a Company, an Employee and a Salary.
Toolbox Icon
(compare with
and
A Packaging Component is an element that appears very similar to a Component 1383 in a diagram but behaves as a Package 1392 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 1304 . In the Project Browser, the three elements display as shown below:
1408
Toolbox Icon
16.2.3.11 Process
A Process is an Activity 1324 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 1306 . Business processes typically range across many parts of the organization and span one or more systems.
Toolbox Icon
16.2.3.12 Requirements
As an analysis step, often it is desirable to capture simple system requirements. These are eventually realized by Use Cases 1373 . In the initial requirement gathering phase, cataloging requirements can be achieved using the Requirement extension on a Custom diagram 1308 .
Requirements can also be aggregated to create a hierarchy. The diagram below illustrates how this might be done.
1409
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 230 page. The colors on Requirement elements identify the status of the requirement. You change the status - and hence color - on the element Properties 576 dialog. You set the color for each status on the Status Types 804 dialog.
Toolbox Icon
16.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 1312 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 48 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.
1410
Note: Enterprise Architect displays UI Controls 1411 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 1373 element. You might use it to extend the facilities of the Testing 843 window 843 , 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
1998-2009 Sparx Systems Pty Ltd
1411
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, Hierarchy window and reports.
16.2.3.15 Table
A Table is a stereotyped Class 1378 . It is drawn with a small table icon in the upper right corner. You typically use this element in Data Modeling 1313 and Class 1295 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 1075 for that Table, otherwise you do not have any data types to choose from when creating columns.
Toolbox Icon
The icons can be combined on a Screen icon to represent the appearance of a user interface screen, as shown:
1412
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.
1413
Toolbox Icon
(where UI Control is the name of the user interface element type)
A similar set of web modeling elements and relationships is also available through dedicated Web Modeling pages in the Enterprise Architect UML 108 Toolbox 108 .
1414
1415
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 some custom ones of its own. Together with the UML Elements 1316 , 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.
Activity Diagrams
466
1416
Custom
WSDL
1417
XML Schema
Object
Data Modeling
16.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 1295 , Package models 1294 and Object models 1297 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
1417
Toolbox Icon
1418
16.3.2 Assembly
An Assembly connector bridges a component's required interface 1387 (Component1) with the provided interface of another component (Component2), typically in a Component diagram 1304 .
Toolbox Icon
16.3.3 Associate
An Association implies two model elements have a relationship, usually implemented as an instance variable in one Class 1378 . 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 1406 element. When code is generated for Class diagrams 1295 , Associations become instance variables in the target Class. The relationship is also used in Package, 1294 Object, 1297 Communication 1289 , Data Modeling 1073 and Deployment 1301 diagrams.
Toolbox Icon
or
1419
association may have the same type. An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends; otherwise, the association is not navigable from the opposite ends.
An Association Class connector is a UML construct that enables an Association 1418 connector to have attributes 369 and operations 396 (features). This results in a hybrid relation with the characteristics of a connection and a Class 1378 . It is used to model particular types of connections in UML (see the OMG UML Specification 1420 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 1295 or Deployment 1301 diagram, click on the Association Class icon in the Enterprise Architect UML 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 1420 . 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.
Toolbox Icon
1420
A Communication Path defines the path through which two DeploymentTargets are able to exchange signals and messages. Communication Path is a specialization of Association 1418 . A DeploymentTarget is the target for a deployed Artifact 1377 and can be a Node 1389 , Property or InstanceSpecification 1384 in a Deployment diagram 1301 .
Toolbox Icon
1421
16.3.6 Compose
A Composite Aggregation 1417 is used to depict an element that is made up of smaller components, typically in a Class 1295 or Package 1294 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
16.3.7 Connector
Connectors illustrate communication links between parts to fulfill the structure's purpose, typically in a Composite Structure 1298 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.
1422
Toolbox Icon
The Control Flow is a connector connecting two nodes in an Activity diagram 1248 . 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 1336 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.
1423
Toolbox Icon
16.3.9 Delegate
A Delegate connector defines the internal assembly of a component's external Ports 1393 and Interfaces 1388 , on a Component diagram 1304 . 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
16.3.10 Dependency
1424
Dependency relationships are used to model a wide range of dependent relationships between model elements in Use Case 1250 , Activity 1324 and Structural 1293 diagrams, and even between models themselves. You can create the Dependency from the Common 114 page of the Enterprise Architect UML Toolbox. The Dependencies package as defined in UML 2.1 has many derivatives, such as Realization 1449 , Deployment 1424 and Use 1454 . Once you create a Dependency you can further refine its meaning by applying a specialized stereotype 1424 .
Toolbox Icon
1. Select the Dependency relationship to change. 2. Right-click on the connector and, from the context menu, select the Dependency Properties option. The Dependency Properties dialog displays. 3. In the Stereotype field, either type in the required stereotype name or click on the drop-down arrow and select the stereotype from the list. 4. Click on the OK button. Alternatively, you can right-click on the Dependency relationship and select the Advanced | Dependency Stereotypes context menu option, then select from a shorter list of standard stereotypes.
16.3.11 Deployment
A Deployment is a type of Dependency 1423 relationship that indicates the deployment of an artifact onto a node or executable target, typically in a Deployment diagram 1301 . 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 1392 , Parts can also serve as targets of a Deployment relationship.
1425
Toolbox Icon
16.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 1250 to indicate that one Use Case 1373 (optionally) extends the behavior of another. An extending Use Case often expresses alternative flows.
Toolbox Icon
16.3.13 Generalize
A Generalization is used to indicate inheritance. Drawn from the specific classifier to a general classifier, the
1426
generalize implication is that the source inherits the target's characteristics. It is used typically in Class Component 1304 , Object 1297 , Package 1294 , Use Case 1250 and Requirements 1310 diagrams.
1295
Toolbox Icon
(and )
16.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 1250 to reflect that one Use Case 1373 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 1423 used in Class models 1295 .
Toolbox Icon
An Information Flow represents information items 1387 or classifiers flowing between two elements in any diagram. The connector is available from the Common toolbox page 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).
1998-2009 Sparx Systems Pty Ltd
1427
2. Click on the Information Flow connector in the Common toolbox page and drag between the two elements. The Information Items Conveyed 1427 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 1428 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 1428 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
1428
Information Item Conveyed context menu option. The Information Items Conveyed dialog displays.
Use to Display the Select <Item> 394 dialog, from which you select the required Information or Classifier element(s). Remove the selected item.
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 1426 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 1427 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.
1429
The Interrupt Flow is a connection used to define the two UML concepts of connectors for Exception Handler 1341 and Interruptible Activity Region 1353 . An Interrupt Flow is also known as an activity edge. It is typically used in an Activity diagram 1248 .
Toolbox Icon
16.3.17 Manifest
A Manifest relationship indicates that the Artifact 1377 source embodies the target model element, typically in Component 1304 and Deployment 1301 diagrams. Stereotypes 477 can be added to Enterprise Architect to classify the type of manifestation of the model element.
Toolbox Icon
16.3.18 Message
Messages indicate a flow of information or transition of control between elements. Messages can be used by Timing Diagrams 1442 , Sequence Diagrams 1430 and Communication Diagrams 1430 (but not Interaction Overview 1291 diagrams) to reflect system behavior. If between Classes 1378 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.
1430
Toolbox Icon
Sequence diagrams 1280 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 1435 . To create a Message on a Sequence diagram, follow the steps below: 1. Access the Sequence diagram. The Interaction pages of the Enterprise Architect UML 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).
1431
3. In the Message field, type the Message name. Notes: If the Message flow is towards a Class 1378 element (dropped in from a Class diagram) or a Lifeline 1356 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 397 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 commaseparated 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 1433 . 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
1432
, 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 227 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 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 Rich Text Notes 139 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 1436 of a message on the Timing Details dialog, and emphasize the sequence of closely-ordered messages using General Ordering 1438 . To toggle the numbering of messages on a Sequence diagram, select or deselect the Show Sequence Numbering 228 checkbox 228 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
1433
16.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 1429 , typically in a Sequence diagram 1280 .
Self-Message as Return
It is possible to depict a return from a Self Message call.
To create a Self Message return: 1. Create a second Self Message at the end of execution. 2. Double-click on the Message name to open the Message Properties dialog. 3. Select the Is Return checkbox. 4. Raise the Activation level Self-Message Calls
1434 1286
of the return.
indicate a nested invocation; new activation levels are added with each Call.
Toolbox Icon
1434
16.3.18.1.2 Call
A Call is a type of Message 1430 connector that extends the level of activation from the previous Message. All Self-Messages 1433 create a new activation level, but this focus of control usually ends with the next Message (unless activation levels 1285 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
1435
1280
1436
Complete the fields on this dialog as follows: Option Duration Constraint Duration Constraint Between Messages Use to Indicate the minimum and maximum limits on how long a message can last. Indicate the minimum and maximum interval between sending or receipt of the previous message at the current message's source Lifeline, and sending the current
1437
Option
Use to message.
Indicate the minimum and maximum time at which the message should arrive at the target. 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 1438 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.
1438
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.
1439
You can have more than one General Ordering arrow issuing from or targeting a Message, if necessary.
1. Open a diagram (one of: Communication, Analysis, Interaction Overview, Object, Activity or State Machine). 2. Add the required objects. 3. Add an Association
1418
4. Right-click on an Association to display the context menu. 5. Select the option to add a message from one object to another. 6. When the Message Properties
1430
7. Click on the OK button. The message is added, connected to the Association and Object instances. 8. Move the message to the required position.
1440
1441
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 Rich Text Notes 139 toolbar at the top of the field. 4. Click on the OK button to save changes.
Sequence Messages
To re-order 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.
1442
2. Click on the Message to move, and click on the 'hand' buttons at the bottom of the dialog to move the messages up or down the sequence. Repeat until the sequence matches your requirements. 3. 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 1364 in a Timing diagram Timeline, a Message is a connection between two Timeline objects.
1264
. In the case of a
1443
See UML Superstructure Specification, v2.1.1, figures 14.30 and 14.31, p. 520.
Toolbox Icon
1444
The dialog consists of a set of transition points. Each transition point can be defined with the following properties: Property Start End Description Defines the lifeline where the message originates. Defines the lifeline where the message terminates.
These are set by default when a Message is created by dragging the cursor between two Lifelines. Property Start Time End Time Name Time Observation Duration Observation Transition To Event Time Constraint Duration Constraint Description Specifies the start time for a message. Specifies the end time for a message. The name of the message. Provides information on the time of a sent message. Indicates the interval of a Lifeline at a particular state, begun from a message receipt. The state in the target Lifeline that the Message points to. The occurring event. The time taken to transmit a message. Pertains to a lifeline's period at a particular state. The constraint could be instigated by that Lifeline's receipt of a message.
1445
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.
16.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 1392 nesting in a Package diagram 1294 .
Toolbox Icon
1446
16.3.20 Notelink
1358
Both Note and Notelink are available in any category of the Enterprise Architect UML Toolbox, in the Common 114 pages. You can also select them from the UML Elements 134 toolbar.
Toolbox Icon
Object Flows are used in Activity diagrams 1248 and State Machine diagrams 1252 . 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 1446 topic. In State Machine diagrams, an Object Flow is a specification of a state flow or transition. It implies the passing of an Object 1389 instance between elements at run-time. You can insert an Object Flow from the State or Activity pages of the Enterprise Architect UML 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
1422
Toolbox Icon
, there are several ways to define the flow of data between objects.
1446
The following diagram depicts a simple Object Flow accessing order information.
1447
See UML Superstructure Specification, v2.1.1, figure 12.110, p. 391. This explicit portrayal of the data object Order, connected to the Activities by two Object Flows, can be refined by using the following format. Here, Action Pins 1321 are used to reflect the order.
See UML Superstructure Specification, v2.1.1, figure 12.110, p. 391. The following diagram is an example of multiple Object Flows exchanging data between two actions.
See UML Superstructure Specification, v2.1.1, figure 12.111, p. 391. Selection and transformation behavior, together composing a sort of query, can specify the nature of the Object Flow's data access. Selection behavior determines which objects are affected by the connection. Transformation behavior might then further specify the value of an attribute pertaining to a selected object. Selection and transformation behaviors can be defined by attaching a note to the Object Flow. To do this, right-click on the Object Flow and select the Attach Note or Constraint context menu option. A dialog lists other flows in the diagram, to which you can select to attach the note, if the behavior applies to multiple flows. To comply with UML 2, preface the behavior with the notation selection or transformation.
1448
16.3.22 Occurrence
An Occurrence relationship indicates that a Collaboration 1381 represents a classifier, in a Composite Structure diagram 1298 . An Occurrence connector is drawn from the Collaboration to the classifier.
Toolbox Icon
A Package Import relationship is drawn from a source Package 1392 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 1294 .
Toolbar Icon
In a Package diagram 1294 , a Package Merge indicates a relationship between two Packages 1392 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
1998-2009 Sparx Systems Pty Ltd
1449
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.
Toolbar Icon
16.3.25 Realize
A source object implements or Realizes its destination object. Realize connectors are used in a Use Case 1250 , Component 1304 or Requirements 1310 diagram to express traceability 786 and completeness in the model. A business process or Requirement 1408 is realized by one or more Use Cases 1373 , which in turn are realized by some Classes 1378 , which in turn are realized by a Component 1383 , 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.
1450
Toolbar Icon
(and )
16.3.26 Recursion
1430
1280
Toolbox Icon
Role Binding is the mapping between a Collaboration Occurrence's 1382 internal roles and the respective Parts 1392 required to implement a specific situation, typically in a Composite Structure diagram 1298 . 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 1381 and the classifier's fulfilling roles, with the Collaboration's internal binding roles labeled on the classifier end of the connector.
Toolbar Icon
1451
16.3.28 Represents
The Represents connector indicates that a Collaboration 1381 is used in a classifier, typically in a Composite Structure diagram 1298 . The connector is drawn from the Collaboration to its owning classifier.
Toolbar Icon
16.3.29 Representation
The Representation relationship is a specialization of a Dependency 1423 , connecting Information Item 1387 elements that represent the same idea across models, typically in an Analysis diagram 1306 . For example, Bonus and Salary are both a representation of the Information Item Wage.
Toolbar Icon
1452
16.3.30 Trace
The Trace relationship is a specialization of a Dependency 1423 , 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 791 diagram, or in a Class 1295 , Use Case 1250 , Object 1297 or Composite Structure 1298 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.
Toolbar Icon
16.3.31 Transition
A Transition defines the logical movement from one State 1361 to another, in a State Machine diagram Transition can be controlled through the following connector Properties dialog:
1252
. The
1453
Option Guard
Use to 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. Convert the Effect field from a free-text field to the definition of a specific Activity or behavior. Enterprise Architect displays the Select <Item> 394 dialog to prompt you to select the Activity or behavior element from the model.
Effect is a Behavior
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 Name Type Specify the name of the trigger. Specify the type of trigger: Call, Change, Signal or Time. Call - specifies that the event is a CallEvent, which sends a message to the associated object by invoking an operation. Change - specifies that the event is a ChangeEvent, which indicates that the transition is the result of a change in value of an attribute. Signal - specifies that the event is a SignalEvent, which corresponds to the receipt of an asynchronous message. Time - corresponds to a TimeEvent; which specifies a moment in time.
1454
Use to Specify the event instigating the Transition. Create a new trigger. Save the current trigger. Remove the selected trigger from the list. List the current triggers for the Transition.
Fork and Join segments can have neither triggers nor guards.
Toolbar Icon
16.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 1423 relationship. You typically use the Use relationship in Use Case diagrams 1250 to model how Actors 1328 use system functionality (Use Cases 1373 ), or to illustrate usage dependencies between Classes 1378 or Components Notes: It is more usual (and correct UML) to have an Association Connector Case.
1418 1383
To depict a usage dependency on a Class 1295 or Component 1304 diagram, draw a Dependency connector. Right-click on the Dependency, and select the Dependency Stereotypes | Use context menu option.
Toolbar Icon
1455
A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier.
Part
XVII
1457
License Management |
17 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, their expiration date and the product each key applies to.
Use the buttons on the dialog as required: Option Add Key Use to 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 AddIn. Obtain a key from the Enterprise Key Store (available for version 4.51 and above). For more information on adding keys see the Add License Key
1459
topic.
Remove Key Make the Add-In or current version of Enterprise Architect inoperable. Copy Close Help Place the highlighted key into the clipboard. Close the dialog. Display the help for this topic.
You can also run the following tasks from the License Management dialog: Register a Full License 21 Upgrade an Existing License Register an Add-In 1465
1462
1458
1459
3. Click on the Enter Private Key tab. 4. In the Name and Company fields, type your user name and company name. Into the registration key field, copy the registration key. 5. Click on the OK button to confirm the key selection.
1460
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 to locate and select the shared key store. 6. In the Select a Product field, click on the appropriate product name 7. Click on the OK button.
1461
1462
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).
1463
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
1464
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.
1465
1457
dialog displays.
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. 7. Click on the OK button. 8. When the Add-In has been added successfully, close down Enterprise Architect and restart it to apply the changes.
Part
XVIII
1467
Introduction
Welcome to the Enterprise Architect Software Developers Kit (SDK). This is a special section of the Enterprise Architect User Guide, covering the more advanced aspects of extending and customizing Enterprise Architect. In describing aspects of extending 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, linked crossreferences to these concepts are provided in the text.
Contents
UML Profiles 1468 (incorporating UML Stereotypes 1468 ) MDG Technologies 1493 Shape Scripts 1523 Tagged Value Types 1542 Code Template Framework 1549 Enterprise Architect Object Model (Automation Interface) Enterprise Architect Add-In Model 1583
1635
1468
Introduction
UML Profiles provide a means of extending the UML Language, which enables you to build UML models in particular domains. They are based on additional stereotypes 1468 and Tagged Values 1542 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 Enterprise Architect UML 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 For information on developing your own Profiles, see the following topics: Custom Stereotypes 1468 Create Profiles 1470 Quick Linker 1487 Toolbox Profiles 1509 Diagram Profiles 1514 Task Pane Profiles 1516
466
topic.
1469
2. Type or select a Stereotype name. 3. Select a Base Class from the drop-down list. 4. To associate a Metafile with this stereotype, click on the Metafile radio button and the Assign button, and locate the required .emf or .wmf file. 5. Enter optional Notes and select Default Colors for this stereotype. 6. Click on the Save button to save the stereotype. The table below describes the functionality of the Stereotypes tab. Option Stereotype Group name Use to Specify the name of the stereotype. Enable grouping of stereotype features by a plural name, for attributes and operations, which is shown on diagrams in the attribute and operations compartments. Enable the stereotyped element to inherit the base characteristics from a pre-existing element type. Add any stereotype notes.
Switch to the default element appearance. Enable an image file to be used for the appearance of the stereotype. Specify custom shapes for the stereotype using the Enterprise Architect Shape Scripting language. For more information see the Shape Scripting 1523 topic.
1470
Option Assign Remove Default Colors Fill Border Font Reset Note:
Use to Add the associated metafile or Shape Script from the stereotyped element. Remove the associated metafile or Shape Script from the stereotyped element.
Set the default background color of the element. Control the border color. Control the color of the stereotype font. Reset the appearance of the element to the default element appearance.
You can transport these custom stereotype definitions between models, using the Export Reference Data 819 and Import Reference Data 820 options on the Tools menu.
2. Add Stereotypes and Metaclasses 4. Define Constraints for Stereotypes 5. Add Enumerations 6. Add Shape Scripts 8. Export the Profile
1478 1479 1481
3. Drag the Profile item onto the Class diagram. The New Model Package dialog displays.
1998-2009 Sparx Systems Pty Ltd
1471
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
279
dialog
279
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. Double-click on the Profile Package on the diagram to open the child diagram. You now use this child diagram to add stereotypes
1471
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:
1472
You can now add stereotype Tags 1472 , Constraints 1476 , Enumerations 1478 , and/or Shape Scripts Profile, and define the default appearance 1481 of the elements or connectors as required.
1479
to your
1473
2. Click on the New button to create a new attribute. 3. In the Name field, type the name of the stereotype tag. 4. In the Type field, click on the drop-down arrow and select the attribute type. 5. In the Initial field, type the initial value of the tag. (See the Add Enumerations to UML Profiles for the steps for creating enumerated types for Tagged Values.) 6. In the Notes field, type a description of the tag. 7. Click on the Save button and Close button.
1478
topic
1474
1475
2. In the Name field, type the name of the stereotype tag. 3. In the Initial field, type the initial value of the tag. 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. 4. Click on the Save button and Close button.
1476
In the Tagged Values window for the connector, against rootNode, you click on the selection button ([ ... ]). This displays the Select <Item> 394 dialog, which you use to locate elements in the current model with the Node stereotype. You can then select one of these elements as the value of the tag.
1477
3. In the Constraint field, type the value of the constraint. 4. In the Type field, click on the drop-down arrow and select the appropriate type. 5. In the Status field, click on the drop-down arrow and select the appropriate status. 6. In the Notes field, type any additional information required. 7. Click on the Save button, and on the OK button to close the dialog.
1478
Note: Enumerations defined under a Profile Package do not appear as elements in the profile when imported. To add an Enumeration element, follow the steps below: 1. Open your Profile Package child Class diagram. 2. In the Enterprise Architect UML Toolbox, select More tools | Profile. The contents of the Profile page of the Toolbox display. 3. Drag an Enumeration item from the toolbox onto the diagram. If the Properties dialog does not display, double-click on the element on the diagram. 4. In the Name field, type the name of the new Enumeration. 5. Click on the Details tab and click on the Attributes button. The Attributes Properties dialog displays.
1479
6. In the Name field, type the name of the Enumeration attribute. 7. In the Type field, click on the drop-down arrow and select the appropriate type. 8. In the Initial field, type the initial value of the attribute. 9. Click on the Save button, and repeat steps 6 to 9 for additional attributes. 10. When you are finished, click on the Close button. 11. Right-click on the Stereotype element and select the Attributes context menu option. The Attribute Properties dialog displays for the stereotype. 12. In the Name field type a name for the attribute. 13. In the Type field type the name of the Enumeration element. 14. In the Initial field type the name of the first enumeration attribute you defined. 15. Click on the Save and Close buttons. You have now generated a drop-down list for setting the value of the tag in the Tagged Values window.
1. On the Profile Package child diagram, select a Stereotype element. 2. Right-click on the element and select the Attributes context menu option. 3. In the Attributes Properties dialog, in the Name field, type _image.
1480
4. Click on the [ ... ] button next to the Initial field. The Shape Editor 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:
1481
topic.
3. Click on the [ ... ] (Browse) button, and select the destination for the XML Profile file to be exported. If necessary, edit the profile filename, but do not delete the .xml extension. 4. Against the Profile Type, select the UML 2.0 radio button.
1482
Notes: The UML 2.0 radio button is not available unless the package has the <<profile>> stereotype. You can also create stereotypes using the same format as for pre-4.0 versions of Enterprise Architect, by clicking on the EA Pre-4.0 radio button. This has a reduced feature set and is provided for legacy use. 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 1481 - 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 UML modeling, see the Use Profiles
467
topic.
The profile takes the diagram The profile takes the package name. name.
The profile takes the diagram's notes. You can take the default size and appearance (including alternate image) from the diagram object.
The profile takes the package's notes. You cannot take the default size and appearance from the diagram object. You can use the _sizeX, _sizeY and _image properties, but there is no equivalent for default colors. Can be much slower. 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.
1483
. . .
1485
1485
Initial height of the element, in pixels at 100% zoom. Initial width of the element, in pixels at 100% zoom. Used for restricting application of multiple stereotypes
1484
Denotes that the line style for a connector is Tree style. The value of the attribute can be set to H (horizontal), V (vertical), LH (lateral horizontal) or LV (lateral vertical).
_DefaultDiagramType Used for defining child diagram types _HideStype _MakeComposite _OpInh _OpPkg _OpPri
If set to a comma-separated list of stereotypes, sets the Hide Stereotyped Features filter. Used for creating composite elements
1486
If set to 1, switches on the Inherited Features: Show Operations setting. If set to 1, switches on the Operation Visibility: Package setting. If set to 1, switches on the Operation Visibility: Private setting.
1484
Meaning If set to 1, switches on the Operation Visibility: Protected setting. If set to 1, switches on the Operation Visibility: Public setting. If set to 1, switches on the Show element type (Port and Part only) setting. If set to 1, switches on the Show Element Compartments: Inherited Responsibilities setting. If set to 1, switches on the Show Element Compartments: Responsibilities setting. If set to 1, switches on the Hide Object Runstate in current diagram setting. If set to 1, switches on the Show Element Compartments: Tags setting. If set to 1, switches on the Show Element Compartments: Inherited Tags setting.
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.
1485
to it.
The _instanceOwner attribute is applied to a stereotype element and controls the text in the Paste Element 303 dialog 303 . 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.
1486
, the child
The following example from BPMN shows that a BusinessProcess element is always created as a Composite element with a BPMN custom child diagram.
1487
You can also use the _defaultDiagramType attribute for packages, extending the Package metaclass.
1491
1488
1491
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.
If set and Target Element Type also set, the row is ignored unless a connector is being dragged onto an element with this stereotype. 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 G
If set and Create Element also set, results in the creation of an element of this type. If set and Create Element also set, results in the creation of an element with this stereotype. If set and Create Link also set, results in the creation of a connector of this type.
H I J
New Link Stereotype If set and Create Link also set, results in the creation of a connector with this stereotype. New Link Direction Can be:
1489
Column Field
Description directed (always creates an association from source to target) from (always creates an association from target to source) undirected (always creates an association with unspecified direction) bidirectional (always creates a bi-directional association), or to (creates either a directed or undirected association, depending on the value of the Association Direction option).
Note: Not all of the above work with all connector types; for example, you cannot create a bi-directional Generalization. K L New Link Caption New Link & Element Caption Create Link Create Element If a new connector is being created but not a new element, then this is the text that appears on the context menu. If a new connector AND a new element are being created, then this is the text that appears on the context menu. If set to TRUE, results in creation of a new connector; otherwise should be left blank. 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 connector Exclusive to ST Filter + No inherit from Metatype Menu Group Complexity Level Target Must Be Parent Embed element Precedes Separator LEAF Precedes Separator GROUP Dummy Column Should be set to TRUE if self connectors are invalid for this kind of connector; otherwise should be left blank. If set to TRUE, indicates that elements of type Source Element Type with the stereotype Source Stereotype Filter do not display the Quick Linker definitions of the equivalent unstereotyped element.
M N
Q R S
If set, indicates the name of a sub-menu in which a menu item is created. Not implemented, always set to 0. If set to TRUE this menu item only appears when dragging from a child element to its parent; for example from a port to its containing Class. If set to TRUE the element being created is embedded in the target element; otherwise should be left blank. If set to TRUE results in a menu separator being added to the Quick Linker menu; otherwise should be left blank. If set to TRUE results in a menu separator being added to the Quick Linker sub-menu; otherwise should be left blank. 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.
T U
1490
This results in 8 records in the Quick Linker definition 1. Dependency to new Component 2. Dependency from new Component 3. Dependency to existing Component 4. Dependency from existing Component 5. Dependency to existing Port 6. Dependency from existing Port
1488
file.
7. Dependency to existing Component, create new Port 8. Dependency from existing Component, create new Port In the spreadsheet, this is implemented by the following values:
You can create the following profile and cut and paste the CSV data into the document artifact to test the effect.
1491
This overrides the default Class-to-Interface Quick Links when a Quick Link is dragged from a quick Class to an Interface element. Note: This technique does not affect the automatic appearance of Dependency, Trace, Information Flow and Help items on the Quick Linker menu.
1492
Class Collaboration Component Decision DeepHistoryState Deployment Specification Device DiagramGate EntryPoint EntryState
InteractionOccurrence Interface Issue InterruptableActivityRegion JunctionState MergeNode MessageEndpoint n-ary Association Node Object
Signal State StateLifeline StateMachine Synchronization_H Synchronization_V SynchState UMLDiagram UseCase ValueLifeline
1493
The Model Driven Generation (MDG) Technologies enable Enterprise Architect users to access and use resources pertaining to a specific technology in Enterprise Architect. There are various options for an administrator or individual user to bring MDG Technologies into use with Enterprise Architect, as described in the Enterprise Architect User Guide 489 . You should read the MDG Technology topics to understand how MDG Technologies are accessed and used within Enterprise Architect, especially the Manage MDG Technologies 491 topic. A further option is that Technology Developers can develop new MDG Technologies and deploy them to the project team as appropriate; this is described in the following topics: Create MDG Technologies 1493 Working With MTS Files 1508 Customize Toolbox Profiles 1509 Create Diagram Profiles 1514 Create Tasks Pane Profiles 1516 Define Validation Configuration 1520 Incorporate Model Templates 1521 Deploy an MDG Technology 1521
1494
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.
1495
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.
5. Complete the fields on this screen as follows: Option Technology Filename Use to Type the name of the MDG Technology. Type or select the path and filename of the MDG Technology File (the file
1496
Option
ID Version Icon
Type a reference for the MDG Technology File, up to 12 characters long. Type the version number of the MDG Technology File. (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. (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. (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. (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. Type a short explanation of the functionality of the MDG Technology.
Logo
URL Support
Notes
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 1497 Add a Pattern 1498 Add a Diagram Profile 1499 Add a Toolbox Profile 1500
1998-2009 Sparx Systems Pty Ltd
1497
Add Task Panel Pages 1501 Add Tagged Value Types 1502 Add Code Modules 1503 Add MDA Transformations 1505 RTF Report Templates 1507 Linked Document Templates 1508 Add Images 1505 Add Scripts 1506 (Corporate and 'Suite' editions).
8. Work through the dialogs displayed in response to your choices, and when all are complete, click on the Next button. The MDG Technology Wizard - Finish screen displays, providing information on the items included in the MDG Technology File.
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
1508
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 492 topic.
1. Follow the steps in the Create MDG Technologies 1493 topic up to and including Step 6 1496 , where you select the Profiles checkbox. The MDG Technology Wizard - Profile files selection dialog displays.
1498
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 stereotypes profile 4. Click on the Next button to proceed.
1487
1. Follow the steps in the Create MDG Technologies 1493 topic up to and including Step 6 1496 , where you select the Patterns checkbox. The MDG Technology Wizard - Pattern files selection dialog displays.
1499
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.
. To use
1. Follow the steps in the Create MDG Technologies 1493 topic up to and including Step 6 1496 , where you select the Diagram Types checkbox. The MDG Technology Wizard - Diagram Types dialog displays.
1500
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.
1501
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.
1502
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.
1. Follow the steps in the Create MDG Technologies 1493 topic up to and including Step 6 1496 , where you select the Tagged Value Types checkbox. The MDG Technology Wizard - Tagged Value Types dialog displays.
1503
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.
1504
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 937 and the Code Template Editor 940 . Before you can set up a code template for the new language in the editor, you must define at least one data type 817 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: Code Option ConstructorName CopyConstructorName DefaultExtension DefaultSourceDirectory DestructorName Editor ImplementationExtension Description The name of a function used as a constructor. Used by the classHasConstructor 1550 code template macro. The name of a function used as a copy constructor. Used by the classHasCopyConstructor 1550 code template macro. The default extension when generating code. The default path to which Enterprise Architect generates new files. The name of a function used as a destructor. Used by the classHasDestructor 1550 code template macro. The external editor used for editing source of this language. The extension used by Enterprise Architect to generate an implementation file.
1505
Description The relative path from the source file to generate the implementation file. The delimiter used to separate package names when using the packagePath macro from the code templates.
4. Click on the Next button to proceed. You can edit the code option values for source code engineering appropriate Language Options 921 page of the Options dialog.
911
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.
1506
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.
185
, where you
1507
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.
1508
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.
definitions
164
1509
Note: If you use a custom SQL search, the SQL must include ea_guid AS CLASSGUID and the object type. Model Views 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. Model Validation configurations Model Templates. 1521
1520
153
Open the .MTS file in a text editor. To make it easier for you, you can copy the following lines and paste them into the file before the last line of the file (that is, just before the </MDG.Selections> lines:
<ModelSearches file=""/> <ModelViews file=""/>
(The code for the model validation configurations and model templates is provided in the corresponding sections, accessed via the links in the list above.) You can, if necessary, have more than one line for each inclusion; for example, more than one ModelSearch. For each inserted line: In the file attribute, enter the filename of the Model Search XML file or Model View XML file. Save the .MTS file.
2. Create a .MTS file 1493 containing instructions on how to build your MDG Technology. Use this .MTS file to build your MDG Technology. 3. Add some finishing touches: Create hidden sub-menus 1510 Override Enterprise Architect's default toolboxes Change the default icons for toolbox items 1511 .
1511
2. On the diagram, create a Class, name it ToolboxPage and give it the metaclass stereotype. 3. Create a stereotype element for each of the toolbox pages to create within your toolbox, such as MyClassElements and MyClassRelationships. Set their Alias to the text to display in the title bar of each toolbox page, such as My Class Elements and My Class Relationships respectively. Use the Notes field to define the tool-tip for each toolbox page; that is, Elements for Class Diagrams and Relationships for Class Diagrams. Use the extends connector to set the stereotype elements to extend
1510
1510
4. In the stereotype elements, create an attribute for each toolbox item. The name of the attribute should be the name of the element or connector to be dropped, including namespace, for example, UML::Package, UML::Class and UML::Interface. The toolbox items display in the same order as the 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 1512 and connectors 1513 that can be extended. To define a toolbox item that allows a pattern to be dropped onto a diagram, name the attribute MyTechnology::MyPattern(UMLPattern) where MyTechnology is the name of the technology and MyPattern is the name of the pattern to drop. For example, GoFPatterns::Builder(UMLPattern). 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 Values and Constraints of all elements created from them.
470
of the Tagged
1511
This states that the profile is the new Enterprise Architect default for all UML Class diagrams. For a list of inbuilt diagram types, see the names of the toolboxes 1512 .
1512
470
of
Action Activity ActivityFinal (Final) ActivityInitial (Initial) ActivityParameter ActivityPartition (Partition) ActivityRegion (Region) Actor Artifact AssociationElement (Association) Boundary (for Use Cases) CentralBufferNode (Central Buffer Node) Change Choice Class Collaboration CollaborationOccurrence
InteractionState (State/Continuation) Interface Issue Junction Lifeline MergeNode (Merge) MessageEndPoint (Endpoint or Message Endpoint) MessageLabel (Message Label) Metaclass Node Object ObjectBoundary (Boundary) ObjectControl (Control) ObjectEntity (Entity) Package PackagingComponent Part
1513
Comment (Note) Component Constraint Datastore Decision DeploymentSpecification (Deployment Specification) Device DiagramLegend (Diagram Legend) DiagramNotes (Diagram Notes) DocumentArtifact (Document Artifact or Document) Entity (Information) EntityObject (Entity) EntryState (Entry) Enumeration ExceptionHandler (Exception) ExecutionEnvironment (Execution Environment) ExitState (Exit) Feature FinalState (Final) FlowFinalNode (Flow Final) ForkJoinH (Fork/Join - Horizontal) ForkJoinV (Fork/Join - Vertical) Gate (Diagram Gate) GUIElement (UI Control) HistoryState (History) Hyperlink InformationItem (Information Item) InitialState (Initial) InteractionFragment (Fragment)
Port Primitive Process Profile ProvidedInterface (Expose Interface) ReceiveEvent (Receive) Requirement RobustBoundary (Boundary) RobustControl (Control) RobustEntity (Entity) Screen SendEvent (Send) SequenceBoundary (Boundary) SequenceControl (Control) SequenceEntity (Entity) Signal State StateMachine (State Machine) StateTimeLine (State Lifeline) Stereotype StructuredActivity (Structured Activity) SynchState (Synch) Table Terminate TestCase (Test Case) Text UseCase (Use Case) UMLBoundary (Boundary) ValueTimeLine (Value Lifeline)
Aggregation (Aggregate) Assembly Association (Associate) AssociationClass (Association Class) CallFromRecursion (Call)
NoteLink (Note Link) ObjectFlow (Object Flow) Occurrence PackageImport (Package Import) PackageMerge (Package Merge)
1514
CommunicationPath (Communication Path) Composition (Compose) Connector ControlFlow (Control Flow) Delegate Dependency Deployment Extension Generalization (Generalize or Inheritance) InformationFlow (Information Flow) InterruptFlow (Interrupt Flow) Invokes Manifest Message Nesting
Precedes ProfileApplication (Application) Realization (Realize or Implements) Recursion Redefinition Representation Represents RoleBinding (Role Binding) SelfMessage (Self-Message) TagValAssociation (Tagged Value) TraceLink (Trace) Transition UCExtend (Extend) UCInclude (Include) UseCaseLink (Use)
1515
styleex: string = one or more of a range of values; see Attribute Values - stylex & pdata 1515 pdata: string = one or more of a range of values; see Attribute Values - stylex & pdata 1515 . The following example shows the DFD diagram profile which defines a DFD diagram as an extension of the Enterprise Architect Analysis diagram.
7. Save the diagram as a profile in the usual manner. 8. Add the diagram profile to the
1499
Note the use of Logical for Class diagrams and also notice the space in the middle of Use Case. These names are used in Defining Child Diagram Types 1486 , or prefixed by Diagram_ in creating Diagram Profiles 1514 .
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 143 ) 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)
1516
HideQuals=0; (to show qualifiers and visibility indicators) AdvancedFeatureProps=1; (to show the feature property string) ShowOpRetType=1; (to show the operation return type) SuppressBrackets=1; (to suppress brackets on operations without parameters) AttPkg=1; (to show package visible class members) VisibleAttributeDetail=1; (to show attribute details on the diagram) TExplicitNavigability=1; (to show non-navigable connector ends) AdvancedConnectorProps=1; (to show connector property strings) SuppConnectorLabels=1; (to suppress all connector labels).
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).
. Create any number of stereotype elements that each define a Tasks Pane
2. Define Contexts 1519 . Create any number of stereotype elements that each define a named Context. A context might be when a specific diagram type is open, or when a specific element type is selected. 3. Allocate Contexts 1519 to Toolboxes. Define the many-to-many relationships between the Tasks Pane toolboxes and the available contexts. 4. Create the Profile
1520
and incorporate it
1501
1517
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 1517 . 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 contextfree and common, appearing for all contexts You can also run Add-In functions 1518 from the Tasks Pane.
Next Step
The next step is to create a set of Tasks Pane Contexts
1519
1518
Build BuildScripts ConfigureCSV ConfigureValidation CreateBaseLine CreateSequenceDiagram DebugPause DebugRun DebugStop Deploy DiagramsOnlyReport ElementUsage ExportXMI FileNew FileOpen GenerateDDL GenerateWSDL GenerateXMLSchema
ImportWSDL ImportXMI ImportXMLSchema Run RunHTMLReport RunRTFReport SetClassifier ShowHideExecution StartDebugRecording StepInto StepOut StepOver StopDebugRecording Test TestingReport ToggleLevelNumbering TransformPackage TransformSelectedElements
ViewHierarchy ViewMaintenance ViewOutput ViewProjectManagement ViewRelationships ViewRelMatrix ViewRequirementTypes ViewRules ViewSearch ViewSourceCode ViewTaggedValues ViewTesting ViewTestingDetails ViewWebBrowser
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:
Public Function ShowMyDiagram(ByRef Repository As EA.Repository, ByVal args As Object) As String Dim ret As String ret = Repository.SQLQuery("select ea_guid from t_diagram where diagram_type='Custom' and StyleEx like '*;MDGDgm=MyDiagrams::MyCustomDiagram;*'") If ret Is Nothing Then ShowMyDiagram = False Exit Function End If Dim oXML As MSXML2.DOMDocument = New MSXML2.DOMDocument oXML.loadXML(ret) Dim NodeList As MSXML2.IXMLDOMNodeList = oXML.selectNodes("//ea_guid") If NodeList.length = 0 Then ShowMyDiagram = False Exit Function End If Dim Node As MSXML2.IXMLDOMNode Dim diag As EA.Diagram If NodeList.length >= 1 Then Node = NodeList.item(0) diag = Repository.GetDiagramByGuid(Node.text) Repository.OpenDiagram(diag.DiagramID) Repository.ShowInProjectView(diag) End If ShowMyDiagram = True End Function
1519
Next Step
The next step is to allocate Tasks Pane contexts to Tasks Pane toolboxes
1519
1520
Next Step
The next step is to Save your Tasks Pane Profile
1520
Ensure that the ruleset IDs do not contain any spaces. To specify a set of rules as a black-list (that is, anything added to this list is turned OFF), open your MTS file in a text editor and copy and paste the following <ModelValidation> block at the top level inside the <MDG.Selections
1998-2009 Sparx Systems Pty Ltd
1521
In the examples above, "BPMNRules" is the rule-set ID defined in the Project.DefineRuleCategory call - see Project Interface 1718 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.
You can include as many <ModelTemplates> blocks as you have model templates. The attributes have the following meanings: Model name: The name of the model template as shown in the Select model(s) dialog, which displays when you create a new model or when you execute the Add a New Model using Wizard menu option. description: The text that is displayed in the Select model(s) dialog when the name is selected. location: Contains the path of the XML file that contains the XMI export of the model template package, relative to the location of the MDG Technology file. If the XMI file is in the same folder as the technology file then this just contains the file name. default: Contains either yes indicating that the model template is checked by default, or no indicating that the model template is un-checked by default. icon: Contains an index to Enterprise Architect's base icons list. To show the appropriate view icon, use one of the following values: 29 = Use Case, 30 = Dynamic; 31 = Class; 32 = Component; 33 = Deployment; 34 = Simple. filter: If you have a large number of model templates, you can group them on the Select model(s) dialog by giving all the model templates in the same group the same filter name. The filter name given appears in the Select from: list box in the Select model(s) dialog.
1522
function. The
1523
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 1524 Write Scripts 1527 Example Scripts 1538 Shape Editor 1526 Add Shape Scripts to UML Profiles 1479
1524
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 1526 displays.
1525
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 click on the Next Shape button to page through the components of the shape.
1538
topic),
Once you have finished writing your Shape Script 1527 , 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. Notes: Shape Scripts do not function in Sequence diagrams. If an element's appearance is modified by a Shape Script, many of the options on the Advanced context menu for that element are disabled.
337
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.
1526
1527
Use to Select the Shape Script version. Import a Shape Script from a text file. Export a Shape Script to a text file. Exit from the Shape Editor, don't forget to save your script from the Stereotypes tab. See Getting Started 1524 . Rotate though the multiple shape definitions. Parse your script and display the result in the Preview window.
1528
<Shape>*; <ShapeDeclaration> <ShapeBody>; <ShapeType> <ShapeName>; "shape" | "decoration"; <ReservedShapeName> | <stringliteral>; See Reserved Names
1537
InitialisationAttributeAssign ::= ment Attribute DrawingStatement IfElseSection QueryExpression QueryName TrueSection ElseSection Method MethodName ::= ::= ::= ::= ::= ::= ::= ::= ::=
1528
<IfElseSection> | <Method>; "if" "(" <QueryExpression> ")" <TrueSection> [<ElseSection>]; <QueryName> "(" <ParameterList> ")"; See Query Methods
1534
"{" <DrawingStatement>* "}" "else" "{" <DrawingStatement>* "}" <MethodName> "(" <ParameterList> ")" ";"; See Drawing Methods
1530
Attribute Name
Type
Description When creating a Shape Script for an embedded element (such as a Port), 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
bottomAnchorOffse (int,int) t
dockable
string
Makes the shape default to dockable 343 , so that it can be aligned with and joined to other elements (both other Shape Scripts and standard elements) on the current diagram. You cannot reverse the dockable status with the
1529
Attribute Name
Type
Description Appearance menu option; to change the status, you must edit the Shape Script. Valid values: standard or off
editableField
string
Defines a shape as an editable region of the element. This field impacts element shapes only, line glyphs are not supported. Valid Values: alias, name, note, stereotype
endPointY, endPointX
integer
Only used for the reserved target and source shapes for connectors; this point determines where the main connector line connects to the end shapes. Default: 0 and 0
fixedAspectRatio h_Align
string string
Set to true to fix the aspect ratio. Do not use if you do not want to fix the aspect ratio. 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 1536 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
preferredHeight
Used by border layoutType - north and south Used in drawing the source and target shapes for connectors to determine how wide the line is.
preferredWidth
Used by border layoutType - east and west. Used by leftright layoutType, shapes where scalable is false to determine how much space they occupy for layout purposes.
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)
1530
Type string
Description 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
Draws an elliptical anticlockwise arc with the ellipse having extents at left, top, right and bottom. The start point of the arc is defined by the intersection of the ellipse and the line from the center of the ellipse to the point (startingpointx, startingpointy). The end of the arc is similarly defined by the intersection of the ellipse and the line from the center of the ellipse to the point (endingpointx, endingpointy). For example:
Arc(0, 0, 100, 100, 95, 0, 5, 0);
arcto( int left, int top, int right, int bottom, int startingpointx, int startingpointy, int endingpointx, int endingpointy)
As for the arc method, except that a line is drawn from the current position to the starting point of the arc, and then the current position is updated to the end point of the arc.
1531
Method Name bezierto( int controlpoint1x, int controlpoint1y, int controlpoint2x, int controlpoint2y, int endpointx, int endpointy)
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( int left, int top, int right, int bottom) endpath() fillandstrokepath() fillpath() hidelabel( string labelname) image( string imageId, int left, int top, int right, int bottom) lineto( Ends the sequence of drawing commands that define a path. Fills the previously defined path with the current fill color, then draws its outline with the current pen. Fills the previously defined path with the current fill color. Hides the label specified by labelname. Draws an ellipse with extents defined by left, top, right and bottom.
Draws the image that has the name imageId in the Image Manager. Note: The image must exist within the model in which the stereotype is used. If it does not already exist in the model, you must import it as reference data 820 . Draws a line from the current cursor position to a point specified by x and y,
1532
Method Name int x, int y) moveto( int x, int y) polygon( int centerx, int centery, int numberofsides, int radius, float rotation) print( string text)
Draws a regular polygon with center at the point (centerx, centery), and numberofsides number of sides.
Prints the specified text string. Note: You cannot change the font size, type or color of this text.
printifdefined( string propertyname, string truepart[, string falsepart]) println( string text)
Prints the truepart if the given property exists and has a non-empty value, otherwise prints the optional falsepart. Note: You cannot change the font size, type or color of this text. Appends a line of text to the shape and a line break. Note: You cannot change the font size, type or color of this text.
Prints the specified text string, wrapped over multiple lines if the text is wider than its containing shape. Note: You cannot change the font size, type or color of this text.
rectangle( int left, int top, int right, int bottom) roundrect( int left, int top, int right, int bottom, int abs_cornerwidth, int abs_cornerheight) setdefaultcolors() setfillcolor( int red, int green,
Draws a rectangle with extents at left, top, right, bottom. Values are percentages.
Draws a rectangle with rounded corners, with extents defined by left, top, right and bottom. The size for the corners is defined by abs_cornerwidth and abs_cornerheight; these values do not scale with the shape.
Returns the brush and pen color to the default settings, or to the user-defined colors if available. See Color Queries 1534 . Sets the fill color. You can specify the required color by defining RGB values or using a color value returned by any of the Color Queries 1534 ; for example:
1998-2009 Sparx Systems Pty Ltd
1533
Method Name int blue) setfillcolor( Color newColor) setlinestyle( string linestyle)
Description
GetUserFillColor()
Changes the stroke pattern for commands that use the pen. Parameters: string linestyle: the following styles are valid: solid dash dot dashdot dashdotdot
Positions floating text labels relative to the main shape. relativeTo is one of N, NE, E, SE, S, SW, W, NW, CENTER xOffset and yOffset are in pixels, not percentage values, and can be negative. Sets the pen to the defined color and optionally sets the pen width.
setpen( int red, int green, int blue[, int penwidth]) setpencolor( int red, int green, int blue) setpencolor( Color newColor)
Note: This method is only for line-drawing commands. It does not affect any text commands. Sets the pen color. You can specify the required color by defining RGB values or using a color value returned by any of the Color Queries 1534 ; for example:
GetUserFillColor()
Note: This method is only for line-drawing commands. It does not affect any text commands.
Sets the width of the pen. Pen width should be between 1 and 5. Note: This method is only for line-drawing commands. It does not affect any text commands.
Similar to StartPath, except that it draws the path with cloud-like curved segments (puffs). Parameters: 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() strokepath()
Starts the sequence of drawing commands that define a path. Draws the outline of the previously defined path with the current pen.
1534
1535
classifier.metatype classifier.name classifier.stereotype complexity concurrency datecreated datemodified diagram.mdgtype diagram.name diagram.stereotype diagram.type haslinkeddocument isabstract isactive iscomposite isembedded isinparent isleaf islocked isroot isspec istagged keywords language metatype multiplicity name notes packagename parentedge parent.metatype persistence phase propertytype propertytype.alias propertytype.metatype propertytype.name propertytype.stereotype scope status stereotype type version visibility.
1536
isroot isleaf name notes source.aggregation source.alias source.changeable source.constraints source.element.name source.element.stereotype source.metatype source.multiplicity source.multiplicityisordered source.qualifiers source.stereotype source.targetscope stereotype subtype target.aggregation target.alias target.changable target.constraints target.element.name target.element.stereotype target.metatype target.multiplicity target.multiplicityisordered target.qualifiers target.stereotype target.targetscope type.
18.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.
1998-2009 Sparx Systems Pty Ltd
1537
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}; } }
Connectors
Connectors (such as Association, Dependency or Generalization) have the following reserved names for parts of the shape. Name shape main shape source shape target shape <labelID> Description The main shape is the whole shape. The source shape is an extra shape at the source end of the connector. The target shape is an extra shape at the target end of the connector. The <labelID> gives the connector a detached label, where <labelID> is one of the following:
1538
Name
for an
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
//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)
Result
1539
Code
rectangle(0,60,90,90); } // (x1,y1,x2,y2)
Result
//SINGLE CONDITIONAL SHAPE shape main { if (HasTag("Trigger","Link")) {// Only draw if the object has a Tagged Value // Trigger=Link // Set the fill color for the path setfillcolor(0,0,0); startpath(); // Start to trace out a path moveto(23,40); lineto(23,60); lineto(50,60); lineto(50,76); lineto(76,50); lineto(50,23); lineto(50,40); endpath(); // End tracing out a path // Fill the traced path with the fill color fillandstrokepath(); return; } } //MULTI CONDITIONAL SHAPE shape main { startpath(); ellipse(0,0,100,100); endpath(); fillandstrokepath(); ellipse(3,3,27,27); 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")) { rectangle(22,22,78,78); moveto(22,22); lineto(50,50); lineto(78,22); return; } }
1540
Code
//SUB SHAPES shape main { rectangle(0,0,100,100); addsubshape("red", addsubshape("blue", addsubshape("green", addsubshape("red", 10, 30, 50, 100, 20); 40); 20); 20);
Result
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); addsubshape("namecompartment", 100, 20); addsubshape("stereotypecompartment", 100, 40); 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#"); } } //Return Statement Shape shape main { if(hasTag("alternatenotation", "false")) { //draw ea's inbuild glyph drawnativeshape(); //exit script with the return statement return; } //alternate notation commands //... rectangle(0,0,100,100); }
1541
Code
Result
//Cloud Path Example Shape shape main { StartCloudPath(); Rectangle(0,0,100,100); EndPath(); FillAndStrokePath(); }
// 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); }
1542
Enterprise Architect provides a number of predefined Tagged Value Types that enable you to create your own: Tagged Values that are structured 1542 with a specific format, with or without tag filters Tagged Values that return values from the various reference data 1545 tables.
1543
, or
1547
You can also use a masking parameter to create your own customized masked Tagged Value Type Note:
You can transport Tagged Value Type definitions between models, using the Export Reference Data 819 and Import Reference Data 820 options on the Tools menu. Tagged Value Types are exported as Property Types.
Classifier
Type=Classifier; Deprecated. Use RefGUID and RefGUIDList. Values=Type1,Type2; Returns the name of a user-selected element from the Stereotypes=Stereotype model, where Type1 and Type2 specify one or more 1; allowed element types and Stereotype1 represents an allowed stereotype. Type=Color; Default=Val; Enables input of a color value from a color chooser menu, where the value is the decimal integer translation of the color's Hex RGB value. For example, the RGB for Red is FF, and the decimal value is 255. Enables creation of a read-only constant value.
Color
Const
Custom
Enables you to create your own template for predefined types; more information is provided in the Create Custom Tagged Value Type 1547 topic. Enables input of the date and time for the Tagged Value from a calendar menu. Enables entry of a directory path from a browser. You can set a default directory path as a string value. Enables definition of a comma-separated list, where Val1, Val2 and Val3 represent values in the list and
DateTime Directory
Enum
1543
Format Default=Val2;
Description Default represents the default value of the list. Enables input of a filename from a file browser dialog. The named file can be launched in its default application. You can set a default file as a string containing the file path and file name.
File
Type=File; Default=Val;
Type=Float; Type=Decimal; Type=Double; Default=Val; Type=Integer; Default=Val; Type=Memo; Type=RefGUID; Values=Type1,Type2; Stereotypes=Stereotype 1;
Enable entry of a Float, Decimal or Double value. These types all map to the same type of data. You can set a default for any or all of these. Enables entry of an Integer value, and a default.
Integer
Memo RefGUID
Enables input of large and complex Tagged Values. Enables the Tagged Value to reference an element from the model by specifying the element's GUID, where Type1 and Type2 specify one or more allowed diagram objects (such as Class, Component, Attribute or Operation) and Stereotype1 represents an allowed stereotype. Set the classifier 394 , attribute or operation 1320 for a Tagged Value of this type by clicking on the [ ... ] button against the Tagged Value in the Tagged Value window.
RefGUIDList
Enables the Tagged Value to reference a list of elements from the model by specifying each element's GUID, where Type1 and Type2 specify one or more allowed diagram objects (such as Class or Component) and Stereotype1 represents an allowed stereotype. Set the classifier 394 for a Tagged Value of this type by clicking on the [ ... ] button against the Tagged Value in the Tagged Value window.
Spin
Enables creation of a spin control with the integer value of LowerBound being the lowest value and UpperBound being the highest value. You can also set a default within that range. Enables entry of a string value, up to 255 characters in length, and a default text string. For longer texts, use Type=Memo
1543
String
Tag Filters
The following table details filters that can be used to restrict where a Tagged Value can be applied. Filter AppliesTo Format AppliesTo=Type1, Type2; Description Restricts the element types this filter can be applied to, where Type1 and Type2 are the valid types. Possible values are: all element types all connector types
1544
Filter
Format
BaseStereotype
BaseStereotype=S1,S2;
Restricts the stereotypes that this tag belongs to, where S1 and S2 are the allowed stereotypes.
1. Select the Settings | UML menu option. The UML Types dialog displays. Select the Tagged Value Types tab.
2. Click on the New button. 3. In the Tag Name field type an appropriate Tagged Value name. 4. In the Description field type the purpose of the Tagged Value, if required. 5. In the Detail field copy-and-paste or type the syntax of the predefined structured Tagged Value Type. 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.
1998-2009 Sparx Systems Pty Ltd
1545
The Tagged Value type displays in the Defined Tag Types list.
Authors that have been defined for the Enterprise Architect model. Cardinality types that have been defined for the Enterprise Architect model. Clients that have been defined for the Enterprise Architect model. Complexity types that have been defined for the Enterprise Architect model. Whilst complexity types can be exported and imported as project reference data 795 , they cannot be updated and so are effectively standard across all projects.
Cardinality
Clients
ComplexityTypes
ConstraintTypes
Type=Enum; List=ConstraintTypes; Type=Enum; List=EffortTypes; Type=Enum; List=MaintenanceTypes ; Type=Enum; List=ObjectTypes; Type=Enum; List=Phases; Type=Enum; List=ProblemTypes; Type=Enum; List=RoleTypes; Type=Enum; List=RequirementTypes ; Type=Enum; List=Resources; Type=Enum; List=RiskTypes; Type=Enum; List=RTFTemplates; Type=Enum; List=ScenarioTypes; Type=Enum;
Constraint types that have been defined for the Enterprise Architect model. Effort types that have been defined for the Enterprise Architect model. Maintenance types that have been defined for the Enterprise Architect model.
EffortTypes
MaintenanceType s
ObjectTypes
Object types that have been defined for the Enterprise Architect model. Phases that have been defined for the Enterprise Architect model. Problem types that have been defined for the Enterprise Architect model. Role types that have been defined for the Enterprise Architect model. Requirement types that have been defined for the Enterprise Architect model.
Phases
ProblemTypes
RoleTypes
RequirementType s
Resources
Resources that have been defined for the Enterprise Architect model. Risk types that have been defined for the Enterprise Architect model. RTF Templates that have been defined for the Enterprise Architect model. Scenario types that have been defined for the Enterprise Architect model. Test types that have been defined for the Enterprise
RiskTypes
RTFTemplates
ScenarioTypes
TestTypes
1546
Format
List=TestTypes;
Architect model.
, follow the
1. Select the Settings | UML menu option. The UML Types dialog displays; select the Tagged Value Types tab.
2. In the Tag field type an appropriate Tagged Value name. 3. In the Description field type a description of the purpose of the Tagged Value, if required. 4. In the Detail field copy-and-paste or type the syntax of the predefined Reference Data Tagged Value Type. In the example above, the Tagged Value returns the values for all of the Authors in the Enterprise 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 197 topic.
1547
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.
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.
1548
1549
The Code Template Framework (CTF) is used during forward engineering of UML models. It is introduced in the Enterprise Architect User Guide 937 . This section of the SDK discusses how you customize the way in which Enterprise Architect generates source code, using the Code Template Editor. 1579 Enterprise Architect's code templates specify the transformation from UML elements to the various parts of a given programming language. The templates are written as plain text with a syntax 1549 that shares some aspects of both mark-up languages and scripting languages. The Base Templates provided in Enterprise Architect are described in the Enterprise Architect User Guide 938 .
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 %dl% %pc% %qt% Use to Produce a literal $ character. Produce a literal % character. Produce a literal " character.
1550
18.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 1550 Field substitution macros 1550 Tagged Value substitution macros Control macros 1567 Function macros 1564 EASL code generation macros 1570
1563
In general, macros (including the % delimiters) are substituted with literal text in the output. For example consider the following item from the Class Declaration template:
... class %className% ...
The field substitution macro, %className%, would result in the current Class name being substituted in the output. So if the Class being generated was named Foo, the output would be:
... class Foo ...
1551
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. Macro Name attAlias attallowDuplicates attClassifierGUID attCollection attConst attContainerType attContainment attDerived attGUID attInitial attIsEnumLiteral attLength attLowerBound attName attNotes attOrderedMultiplicity attProperty attQualType Description Attributes dialog: Alias. Attributes Detail dialog: Allow Duplicates checkbox. The unique GUID for the classifier of the current attribute. Attributes Detail dialog: Attribute is a Collection checkbox. Attributes dialog: Const checkbox. Attributes Detail dialog: Container Type. Attributes dialog: Containment. Attributes dialog: Derived checkbox. The unique GUID for the current attribute. Attributes dialog: Initial. Attributes dialog: Is Literal checkbox. Column dialog: Length. Attributes Detail dialog: Lower Bound. Attributes dialog: Name. Attributes dialog: Notes. Attributes Detail dialog: Ordered Multiplicity checkbox. Attributes dialog: Property checkbox. The attribute type qualified by the namespace path (if generating namespaces) and the classifier path (dot delimited). If the attribute classifier has not been set, is equivalent to the attType macro. Attributes dialog: Scope. Attributes dialog: Static checkbox. Attributes dialog: Stereotype. Attributes dialog: Type. Attributes Detail dialog: Upper Bound. Attributes Detail dialog: Transient checkbox.
1552
Macro Name classAbstract classAlias classArguments classAuthor classBaseName classBaseScope classBaseVirtual classComplexity classCreated classGUID classHasConstructor
Description Class dialog: Abstract checkbox. Class dialog: Alias. Class Detail dialog: C++ Templates: Arguments. Class dialog: Author. Type Hierarchy dialog: Class Name (for use where no connector exists between child and base Classes). The scope of the inheritance as reverse engineered. (For use where no connector exists between child and base Classes.) The virtual property of the inheritance as reverse engineered. (For use where no connector exists between child and base Classes.) Class dialog: Complexity. The date and time the Class was created. The unique GUID for the current Class. 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 1557 macro. 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 1557 macro. 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 1557 macro. True, if the Class in scope has one or more base Classes. Code Gen dialog: Imports. Class Advanced dialog: Is Active checkbox. True, if the Class is an instantiated template Class. Class Advanced dialog: Is Leaf checkbox. Class Advanced dialog: Is Root checkbox. Class Advanced dialog: Is Specification checkbox. Class dialog: Keywords. Class dialog: Language. A space separated list of macros defined for the Class. The date and time the Class was last modified. Class Advanced dialog: Multiplicity. Class dialog: Name. Class dialog: Note.
classHasCopyConstructor
classhasDestructor
classHasParent classImports classIsActive classIsInstantiated classIsLeaf classIsRoot classIsSpecification classKeywords classLanguage classMacros classModified classMultiplicity className classNotes
1553
Macro Name classParamDefault classParamName classParamType classPersistence classPhase classQualName classScope classStereotype classStatus classVersion connectorAlias connectorDestAccess connectorDestAggregation connectorDestAlias connectorDestAllowDuplicates connectorDestChangeable connectorDestConstraint connectorDestContainment connectorDestDerived connectorDestDerivedUnion connectorDestElem*
Description Class Detail dialog. Class Detail dialog. Class Detail dialog. Class dialog: Persistence. Class dialog: Phase. The Class name prefixed by its outer Classes. Class names are separated by double colons (::). Class dialog: Scope. Class dialog: Stereotype. Class dialog: Status. Class dialog: Version. Connector Properties dialog: Alias. Connector Properties dialog, Target Role tab: Access. Connector Properties dialog, Target Role tab: Aggregation. Connector Properties dialog, Target Role tab: Alias. Connector Properties dialog, Target Role tab: Allow Duplicates checkbox. Connector Properties dialog, Target Role tab: Changeable. Connector Properties dialog, Target Role tab: Constraint(s). Connector Properties dialog, Target Role tab: Containment. Connector Properties dialog, Target Role tab: Derived checkbox. Connector Properties dialog, Target Role tab: DerivedUnion checkbox. 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). The element type of the connector destination element. (Separate from the connectorDestElem* macros because there is no classType substitution macro.) Connector Properties dialog, Target Role tab: Member Type. Connector Properties dialog, Target Role tab: Multiplicity. Connector Properties dialog, Target Role tab: Navigability. Connector Properties dialog, Target Role tab: Role Notes. Connector Properties dialog, Target Role tab: Ordered checkbox. Connector Properties dialog, Target Role tab: Owned checkbox.
connectorDestElemType
1554
Macro Name connectorDestQualifier connectorDestRole connectorDestScope connectorDestStereotype connectorDirection connectorEffect connectorGuard connectorGUID connectorName connectorNotes connectorSourceAccess connectorSourceAggregation connectorSourceAlias connectorSourceAllowDuplicates connectorSourceChangeable connectorSourceConstraint connectorSourceContainment connectorSourceDerived connectorSourceDerivedUnion connectorSourceElem*
Description Connector Properties dialog, Target Role tab: Qualifier(s). Connector Properties dialog, Target Role tab: Role. Connector Properties dialog, Target Role tab: Target Scope. Connector Properties dialog, Target Role tab: Stereotype. Connector Properties: Direction. Transition Constraints dialog: Effect. Object Flow and Transition Constraints dialog: Guard. The unique GUID for the current connector. Connector Properties: Name. Connector Properties: Notes. Connector Properties dialog, Source Role tab: Access. Connector Properties dialog, Source Role tab: Aggregation. Connector Properties dialog, Source Role tab: Alias. Connector Properties dialog, Source Role tab: Allow Duplicates checkbox. Connector Properties dialog, Source Role tab: Changeable. Connector Properties dialog, Source Role tab: Constraint(s). Connector Properties dialog, Source Role tab: Containment. Connector Properties dialog, Source Role tab: Derived checkbox. Connector Properties dialog, Source Role tab: DerivedUnion checkbox. 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). The element type of the connector source element. (Separate from the connectorSourceElem* macros because there is no classType substitution macro.) Connector Properties dialog, Source Role tab: Member Type. Connector Properties dialog, Source Role tab: Multiplicity. Connector Properties dialog, Source Role tab: Navigability. Connector Properties dialog, Source Role tab: Role Notes. Connector Properties dialog, Source Role tab: Ordered checkbox. Connector Properties dialog, Source Role tab: Owned checkbox. Connector Properties dialog, Source Role tab: Qualifier(s).
connectorSourceElemType
1555
Macro Name connectorSourceRole connectorSourceScope connectorSourceStereotype connectorStereotype connectorTrigger connectorType connectorWeight constraintName constraintNotes constraintStatus constraintType constraintWeight eaDateTime eaGUID eaVersion effortName effortNotes effortTime effortType elemType fileExtension fileName fileNameImpl fileHeaders fileImports filePath filePathImpl genOptActionScriptVersion genOptCDefaultAttributeType genOptCGenMethodNotesInBody genOptCGenMethodNotesInHead er
Description Connector Properties dialog, Source Role tab: Role. Connector Properties dialog, Source Role tab: Target Scope. Connector Properties dialog, Source Role tab: Stereotype. Connector Properties dialog: Stereotype. Transition Constraints dialog: Trigger. The connector type; for example, Association or Generalization. Object Flow Constraints dialog: Weight. Class dialog, Constraints tab: Name. Class dialog, Constraints tab: Notes. Class dialog, Constraints tab: Status. Class dialog, Constraints tab: Type. Class dialog, Constraints tab: ordering (hand up/down) keys. The current time with format: DD-MMM-YYYY HH:MM:SS AM/PM. A unique GUID for this generation. Program Version (Located in an Enterprise Architect dialog by selecting Help | About EA.). Project Management window: Effort. Project Management window: Notes (unlabelled). Project Management window: Time. Project Management window: Type. The element type: Interface or Class. The file type extension of the file being generated. The name of the file being generated. The filename of the implementation file for this generation, if applicable. Code Gen dialog: Headers. Code Gen dialog: Imports. For supported languages this also includes dependencies derived from associations. The full path of the file being generated. The full path of the implementation file for this generation, if applicable. ActionScript Specifications dialog: Default Version. C Specifications dialog: Default Attribute Type. C Specifications dialog: Method Notes In Implementation. C Specifications dialog: Method Notes In Header.
1556
Description C Specifications dialog: Synchronize Notes in Generation. C Specifications dialog: Synchronise Implementation file in Generation. C Specifications dialog: Default Source Directory. C Specifications dialog: Namespace Delimiter. C Specifications dialog: Reference as Operation Parameter. C Specifications dialog: Reference Parameter Style. C Specifications dialog: Reference Parameter Name. C Specifications dialog: Default Constructor Name. C Specifications dialog: Default Destructor Name. C++ Specifications dialog: Comment Style. C++ Specifications dialog: Default Attribute Type.
genOptCPPDefaultReferenceType C++ Specifications dialog: Default Reference Type. genOptCPPDefaultSourceDirector y C++ Specifications dialog: Default Source Directory.
genOptCPPGenMethodNotesInHe C++ Specifications dialog: Method Notes In Header checkbox. ader genOptCPPGenMethodNotesInBo C++ Specifications dialog: Method Notes In Body checkbox. dy genOptCPPGetPrefix genOptCPPHeaderExtension genOptCPPSetPrefix genOptCPPSourceExtension genOptCPPSynchCPPFile genOptCPPSynchNotes genOptCSDefaultAttributeType genOptCSSourceExtension genOptCSGenDispose genOptCSGenFinalizer genOptCSGenNamespace genOptCSDefaultSourceDirectory genOptDefaultAssocAttName genOptDefaultConstructorScope genOptDefaultCopyConstructorSc C++ Specifications dialog: Get Prefix. C++ Specifications dialog: Header Extension. C++ Specifications dialog: Set Prefix. C++ Specifications dialog: Source Extension. C++ Specifications dialog: Synchronize Notes. C++ Specifications dialog: Synchronize CPP File. C# Specifications dialog: Default Attribute Type. C# Specifications dialog: Default file extension. C# Specifications dialog: Generate Dispose. C# Specifications dialog: Generate Finalizer. C# Specifications dialog: Generate Namespace. C# Specifications dialog: Default Source Directory. Attribute Specifications dialog: Default name for associated attrib. Object Lifetimes dialog: Default Constructor Visibility. Object Lifetimes dialog: Default Copy Constructor Visibility.
1557
Description
Code Editors dialog: Default Database. Object Lifetimes dialog: Default Destructor Constructor Visibility. Source Code Engineering dialog: Capitalize Attribute Names for Properties checkbox. Source Code Engineering dialog: Generate Comments checkbox. Object Lifetimes dialog: Generate Constructor checkbox. Object Lifetimes dialog: Constructor Inline checkbox. Object Lifetimes dialog: Generate Copy Constructor checkbox. Object Lifetimes dialog: Copy Constructor Inline checkbox. Object Lifetimes dialog: Generate Destructor checkbox. Object Lifetimes dialog: Destructor Inline checkbox. Object Lifetimes dialog: Virtual Destructor checkbox. Attribute/Operations Specifications dialog: Generate methods for implemented interfaces checkbox. Source Code Engineering dialog: Use is prefix for boolean property Get(). Source Code Engineering dialog: Autogenerate role names when creating code. Source Code Engineering dialog: Do not generate members where Association direction is unspecified checkbox. Java Specifications dialog: Default attribute type. Java Specifications dialog: Get Prefix.
genOptGenComments genOptGenConstructor genOptGenConstructorInline genOptGenCopyConstructor genOptGenCopyConstructorInline genOptGenDestructor genOptGenDestructorInline genOptGenDestructorVirtual genOptGenImplementedInterface Ops genOptGenPrefixBoolProperties
genOptGenRoleNames
genOptGenUnspecAssocDir
genOptJavaDefaultAttributeType genOptJavaGetPrefix
genOptJavaDefaultSourceDirector Java Specifications dialog: Default Source Directory. y genOptJavaSetPrefix genOptJavaSourceExtension genOptPHPDefaultSourceDirector y genOptPHPGetPrefix genOptPHPSetPrefix genOptPHPSourceExtension genOptPHPVersion genOptPropertyPrefix Java Specifications dialog: Set Prefix. Java Specifications dialog: Source code extension. PHP Specifications dialog: Default Source Directory. PHP Specifications dialog: Get Prefix. PHP Specifications dialog: Set Prefix. PHP Specifications dialog: Default file extension. PHP Specifications dialog: PHP Version. Source Code Engineering dialog: Remove prefixes when generating Get/Set properties. VB Specifications dialog: Multiuse checkbox.
genOptVBMultiUse
1558
Macro Name genOptVBPersistable genOptVBDataBindingBehavior genOptVBDataSourceBehavior genOptVBGlobal genOptVBCreatable genOptVBExposed genOptVBMTS genOptVBNetGenNamespace genOptVBVersion genOptWrapComment importClassName importFileName importFilePath importFromAggregation importFromAssociation importFromAtt
Description VB Specifications dialog: Persistable checkbox. VB Specifications dialog: Data binding behavior checkbox. VB Specifications dialog: Data source behavior checkbox. VB Specifications dialog: Global namespace checkbox. VB Specifications dialog: Creatable checkbox. VB Specifications dialog: Exposed checkbox. VB Specifications dialog: MTS Transaction Mode. VB.Net Specifications dialog: Generate Namespace. VB Specifications dialog: Default Version. Source Code Engineering dialog: Wrap length for comment lines. The name of the Class being imported. The filename of the Class being imported. The full path of the Class being imported. T if the Class has an Aggregation connector to a Class in this file, F otherwise. T if the Class has an Association connector to a Class in this file, F otherwise. T if an attribute of a Class in the current file is of the type of this Class, F otherwise. T if the Class has a Dependency connector to a Class in this file, F otherwise. T if the Class has a Generalization connector to a Class in this file, F otherwise. T if a method return type of a Class in the current file is the type of this Class, Fotherwise. T if an method parameter of a Class in the current file is of the type of this Class, Fotherwise. T if the Class has a Realization connector to a Class in this file, F otherwise. T if the Class is in the current file, F otherwise. The package path with a '.' separator of the Class being imported. The relative file path of the Class being imported from the file path of the file being generated. Association Properties Target Role dialog: Access. The collection appropriate for the linked attribute in scope. Association Properties Target Role dialog: Containment. Association Properties dialog: Target.
importFromParam
1559
Macro Name linkAttNotes linkAttQualName linkAttRole linkAttStereotype linkAttTargetScope linkCard linkedFileLastWrite linkedFileNotes linkedFilePath linkedFileSize linkedFileType linkGUID linkParentName linkParentQualName linkStereotype linkVirtualInheritance metricName metricNotes metricType metricWeight opAbstract opAlias opBehavior opCode opConcurrency opConst opGUID opImplMacros opIsQuery opMacros
Description Association Properties Target Role dialog: Role Notes. The Association target qualified by the namespace path (if generating namespaces) and the classifier path (dot delimited). Association Properties Target Role dialog: Role. Association Properties Target Role dialog: Stereotype. Association Properties Target Role dialog: Target Scope. Link Properties Target Role dialog: Multiplicity. Class Properties dialog: Last Write. Class Properties dialog: Notes. Class Properties dialog: File Path. Class Properties dialog: Size. Class Properties dialog: Type. The unique GUID for the current connector. Generalization Properties dialog: Target. The Generalization target qualified by the namespace path (if generating namespaces) and the classifier path (dot delimited). The stereotype of the current connector. Generalization Properties dialog: Virtual Inheritance. Project Management dialog, Metrics tab: Metric field. Project Management dialog, Metrics tab: (Notes) field. Project Management dialog, Metrics tab: Type field. Project Management dialog, Metrics tab: Weight field. Operation dialog: Virtual checkbox. Operation dialog: Alias. Operation Behavior dialog: Behavior. Operation Behavior dialog: Initial Code. Operation dialog: Concurrency. Operation dialog: Const checkbox. The unique GUID for the current operation. A space-separated list of macros defined in the implementation of this operation. Operation dialog: IsQuery checkbox. A space-separated list of macros defined in the declaration for this operation.
1560
Description Operation dialog: Name. Operation dialog: Notes. Operation dialog: Pure checkbox. Operation dialog: Return Array checkbox. The unique GUID for the classifier of the current operation. 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. Operation dialog: Return Type. Operation dialog: Scope. Operation dialog: Static checkbox. Operation dialog: Stereotype. Operation dialog: Synchronized checkbox. Package dialog: Abstract. Package dialog: Alias. Package dialog: Author. Package dialog: Complexity. The unique GUID for the current package. Package dialog: Keywords. Package dialog: Language. Package dialog: Name. The string representing the hierarchy of packages, for the Class in scope. Each package name is separated by a dot (.). Package dialog: Phase. Package dialog: Scope. Package dialog: Status. Package dialog: Stereotype. Package dialog: Version. The unique GUID for the classifier of the current parameter. Operation Parameters dialog: Default. Operation Parameters dialog: Fixed checkbox. The unique GUID for the current parameter. True, if the parameter uses the enum keyword (C++).
opReturnType opScope opStatic Operation dialog: Stereotype opSynchronized packageAbstract packageAlias packageAuthor packageComplexity packageGUID packageKeywords packageLanguage packageName packagePath packagePhase packageScope packageStatus packageStereotype packageVersion paramClassifierGUID paramDefault paramFixed paramGUID paramIsEnum
1561
Description Operation Parameters dialog: Kind. Operation Parameters dialog: Name. Operation Parameters dialog: Notes. 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. Operation Parameters dialog: Type. Maintenance dialog, Element Issues tab: Completed by. Maintenance dialog, Element Issues tab: Completed. Maintenance dialog, Element Issues tab: History. Maintenance dialog, Element Issues tab: Name. Maintenance dialog, Element Issues tab: Description. Maintenance dialog, Element Issues tab: Priority. Maintenance dialog, Element Issues tab: Raised by. Maintenance dialog, Element Issues tab: Raised. Maintenance dialog, Element Issues tab: Status. Maintenance dialog, Element Issues tab: Version. Properties dialog: Require tab: Difficulty. Properties dialog: Require tab: Last Update. Properties dialog: Require tab: Short Description. Properties dialog: Require tab: Notes. Properties dialog: Require tab: Priority. Properties dialog: Require tab: Status. Properties dialog: Require tab: Type. Project Management window, Resource Allocation tab: Allocated Time. Project Management window, Resource Allocation tab: End Date. Project Management window, Resource Allocation tab: Expected Time. Project Management window, Resource Allocation tab: Time Expended . Project Management window, Resource Allocation tab: History. Project Management window, Resource Allocation tab: Resource. Project Management window, Resource Allocation tab: Description. Project Management window, Resource Allocation tab: Completed(%). Project Management window, Resource Allocation tab: Role.
paramType problemCompletedBy problemCompletedDate problemHistory problemName problemNotes problemPriority problemRaisedBy problemRaisedDate problemStatus problemVersion requirementDifficulty requirementLastUpdated requirementName requirementNotes requirementPriority requirementStatus requirementType resourceAllocatedTime resourceEndDate resourceExpectedTime resourceExpendedTime resourceHistory resourceName resourceNotes resourcePercentCompleted resourceRole
1562
Macro Name resourceStartDate riskName riskNotes riskType riskWeight scenarioGUID scenarioName scenarioNotes scenarioType testAcceptanceCriteria testCheckedBy testDateRun testClass testInput testName testNotes testResults testRunBy testStatus testType
Description Project Management window, Resource Allocation tab: Start Date. Project Management window, Risks tab: Risk. Project Management window, Risks tab: (Notes). Project Management window, Risks tab: Type. Project Management window, Risks tab: Weight. The unique ID for a scenario. Identifies the scenario unambiguously within a model. Properties dialog, Scenario tab: Scenario. Properties dialog, Scenario tab: (Notes). Properties dialog, Scenario tab: Type. Testing window: Acceptance Criteria. Testing window: Checked By. Testing window: Last Run. The Testing window tab (the type of test defined): Unit, Integration, System, Acceptance, Scenario. Testing window: Input. Testing window: Test. Testing window: Description. Testing window: Results. Testing window: Run By. Testing window: Status. Testing window: Type.
Examples:
%className% %opName% %attName%
1563
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.
This corresponds to the tags for attributes, Classes, operations, packages, parameters, connectors with both ends and connectors including the attribute end respectively. <tagName> is a string representing the specific tag name.
Examples:
%opTag:"attribute"%
1564
Examples:
Tagged Value macros use the same naming convention as field substitution macros.
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. Language C++ C# Delphi Java PHP VB VB .Net public Protected Friend Package public internal protected Public public public public public public Public Public Private private private private private private Private Private Protected protected protected protected protected protected Protected Protected
1565
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.
Any function that is to be called by the EXEC_ADD_IN macro must have two parameters: an EA.Repository object, and a Variant array that contains any additional parameters from the EXEC_ADD_IN call. Return type should be Variant. For example:
Public Function ProcessOperation(Repository As EA.Repository, args As Variant) As Variant
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>.
REMOVE_DUPLICATES(<source>, <separator>)
Where <source> is a <separator> separated list; this removes any duplicate or empty strings.
1566
RESOLVE_OP_NAME()
Resolves clashes in interface names where two method-from interfaces have the same name.
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.
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.
1567
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) 1579 . 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.
1568
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.
The basic structure of the if and elseIf macros is: where <operator> can be one of: == != and <test> can be one of: a string literal, enclosed within double quotation marks a direct substitution macro, without the enclosing percent signs a variable reference. Branches can be nested, and multiple conditions can be specified using one of: and or. 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
1998-2009 Sparx Systems Pty Ltd
1569
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 Set the PI, so keywords are separated by a space Any keyword that does not apply - that is, the macro produces an empty result - does not result in a space
%PI=" "% %opTag:"unsafe"=="true" ? "unsafe" : ""% %CONVERT_SCOPE(opScope)% %opTag:"new"=="true" ? "new" : ""% %opAbstract=="T" ? "abstract" : ""% %opConst=="T" ? "sealed" : ""% %opStatic=="T" ? "static" : ""% %opTag:"extern"=="true" ? "extern" : ""% %opTag:"delegate"=="true" ? "delegate" : ""% %opTag:"override"=="true" ? "override" : ""% %opTag:"virtual"=="true" ? "virtual" : ""% %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. Macro Name synchNewClassNotesSpace synchNewAttributeNotesSpace synchNewOperationNotesSpac e synchNewOperationBodySpace Description Space to append to a new Class note. Default value: \n. Space to append to a new attribute note. Default value: \n. Space to append to a new operation note. Default value: \n.
1570
Description Indent applied to Classes within non-global namespaces. Default value: \t.
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 1571 and EASL Properties 1573 topics.
Syntax
$result = %EASL_GET(<<Property>>, <<Owner ID>>, <<Name>>)
where: <<Property>> <<OwnerID>> <<Name>> $result is either "Property" or "Collection" is the ID of the owner object for which the property/collection is to be retrieved is the name of the property or Collection being accessed 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 1570 or custom template 1579 <<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%
1571
Action Call Action Create Action Destroy Action If Action Loop Action Opaque Action Parallel Action RaiseEvent Action RaiseException Action Switch Behavior Behavior Body Behavior Declaration Behavior Parameter Call Argument Guard Property Object Property Declaration Property Notes State State CallBack State Enumerate State EnumeratedName StateMachine StateMachine HistoryVar Transition Transition Effect Trigger.
code
Action
Collection Name Arguments SubActions Description The Action's arguments. The sub-actions of the Action.
Behavior
Collection Name Actions Nodes Parameters Variables Description The Behavior's Actions. The Behavior's nodes. The Behavior's parameters. The Behavior's variables.
1572
Classifier
Collection Name AllStateMachines AsynchProperties AsynchTriggers Behaviors Properties TimedProperties TimedTriggers Description All State Machines for the Classifier. The asynchronous properties of the Classifier. The asynchronous triggers of the Classifier. The behaviors of the Classifier. The properties of the Classifier. The timed properties of the Classifier. The timed triggers of the Classifier.
Construct
Collection Name AllChildren ClientDependencies StereoTypes SupplierDependencies Description The Construct's children. The client dependencies on the Construct. The stereotypes of the Construct. The supplier dependencies on the Construct.
Node
Collection Name IncomingEdges OutgoingEdges SubNodes Description The Node's incoming edges. The Node's outgoing edges. The sub-nodes of the Node.
State
Collection Name DoBehaviors EntryBehaviors ExitBehaviors Description The State's Do behaviors. The State's Entry behaviors. The State's Exit behaviors.
StateMachine
Collection Name AllFinalStates AllStates DerivedTransitions States Description The State Machine's final States. All States within the State Machine, including those within Submachine States. The State Machine's derived transitions with the associated valid effect. The States within the State Machine.
1998-2009 Sparx Systems Pty Ltd
1573
Description The transitions within the State Machine. The State Machine's vertices.
Transition
Collection Name Effects Guards Triggers Description The Transition's effects. The Transition's guards. The Transition's triggers.
Trigger
Collection Name TriggeredTransitions Description The triggered transitions associated with the Trigger.
Vertex
Collection Name DerivedOutgoingTransitions IncomingTransitions OutgoingTransitions Description The Vertex's derived outgoing transitions after traversing the pseudo-nodes. The Vertex's incoming transitions. The Vertex's outgoing transitions.
code
Action
Property Name Behavior Body Context Guard IsFinal IsGuarded IsInitial Kind Next Node Description The Action's associated behavior (Call Behavior Action or Call Operation Action). The Action's body. The Action's context. The Action's guard. A check on whether the action is a final Action. A check on whether the action is a guarded Action. A check on whether the action is an initial Action. The Action's kind. The Action's next action. The Action's associated node in the graph.
1574
Argument
Property Name Parameter Value Description The ID of the Argument's associated parameter. The default value of the argument.
Behavior
Property Name InitialAction isReadOnly isSingleExecution Kind ReturnType Description The Behavior's initial action. The isReadOnly of the Behavior. The isSingleExecution of the Behavior. The kind of Behavior. The return type of the Behavior.
CallEvent
Property Name Operation Description The operation of the CallEvent.
ChangeEvent
Property Name ChangeExpression Description The change expression of the ChangeEvent.
Classifier
Property Name HasBehaviors Language StateMachine Description A check on whether the Classifier has behavioral models (Activity and Interaction). The Classifier's language. The State Machine of the Classifier.
Condition
Property Name Expression Lower Upper Description The Condition's expression. The Condition's lower value. The Condition's upper value.
1575
Construct
Property Name GetTaggedValue IsStereotypeApplied Notes UMLType Visibility Description The Property's Tagged Value. A check on whether a particular stereotype is applied to the Property. Notes on the Property. The UML type of the Property. The visibility of the Property.
Edge
Property Name From To Description The ID of the node from which the Edge arises. The ID of the node at which the Edge is targeted.
EventObject
Property Name EventKind Description The event kind of the Event Object.
Instance
Property Name Classifier Value Description The classifier of the Instance. The value of the Instance.
Parameter
Property Name Direction Type Value Description The direction of the Parameter. The type of the Parameter. The value of the parameter.
Primitive
Property Name FQName ID Name ObjectType Parent Description The FQ name of the Primitive. The ID of the Primitive. The name of the Primitive. The object type of the Primitive. The IDParent of the Primitive.
1576
PropertyObject
Property Name BoundSize ClassifierStereoType IsAsynchProp IsCollection IsOrdered IsTimedProp Kind LowerValue Type UpperValue Value Description The bound size of the PropertyObject (if it is a collection). The stereotype of the PropertyObject's classifier. A check on whether the PropertyObject is an asynchronous property. A check on whether the PropertyObject is a collection. A check on whether the PropertyObject is ordered (if it is a collection). A check on whether the PropertyObject is a timed property. The PropertyObject's kind. The PropertyObject's lower value (if it is a collection). The PropertyObject's type. The PropertyObject's upper value (if it is a collection). The PropertyObject's value.
SignalEvent
Property Name Signal Description The signal of the SignalEvent.
State
Property Name HasSubMachine IsFinalState SubMachine Description A check on whether the State is a Submachine state. A check on whether the State is a final state. Get the ID of the Submachine contained by the State (if applicable).
StateMachine
Property Name HasSubMachineState InitialState SubMachineState Description A check on whether the State Machine has a Submachine state. The State Machine's initial state. The State Machine's Submachine state.
TimeEvent
Property Name When Description The 'when' property of the TimeEvent.
1577
Transition
Property Name HasEffect IsDerived IsTranscend IsTriggered Source Target Description A check on whether the transition has a valid effect. A check on whether the transition is a derived transition. A check on whether the transition transcends from one State Machine (Submachine state) to another. A check on whether the transition is triggered. The Transition's source. The Transition's target.
Trigger
Property Name AsynchDestinationState DependentProperty Event Name Type Description The asynchronous destination state of the Trigger (if it is an asynchronous trigger). The ID of the property associated with the Trigger. The Trigger's event. The Trigger's name. The Trigger's type.
Vertex
Property Name IsHistory IsPseudoState PseudoStateKind Description A check on whether the vertex is a history state. A check on whether the vertex is a pseudo state. The Vertex's pseudo-state kind.
18.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 1577 and referenced 1578 .
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.
1578
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"%
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% $style = %genOptCPPCommentStyle% %if $style == "XML.NET"% %XML_COMMENT($wrapLen)% %else% %CSTYLE_COMMENT($wrapLen)% %endIf%
Define variables to store the style and wrap length options. Reference to $style as part of a condition. Reference to $wrapLen as an argument to function macro.
Example 2
Using variable references as part of a variable definitions:
1998-2009 Sparx Systems Pty Ltd
1579
Example 3
Substituting variable values into the output
$bases=%classInherits% Class %className%$bases
Store the result of the ClassInherits template in $bases. Now output the value of $bases after the Class name.
The following
1582
The Code Template Editor provides the facilities of the Common Code Editor, including Intellisense for the code generation template macros 1550 . For more information on Intellisense and the Common Code Editor, see the Code Editors 205 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
1580
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.
1581
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.
1582
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.
1583
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 1635 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. Add-Ins do not have to implement methods that they never use. Add-Ins prompt users via context menus in the tree view and the diagram. Menu check and disable states can be controlled by the Add-In. Add-Ins enhance the existing functionality of Enterprise Architect through a variety of mechanisms such as Scripts 185 , UML Profiles 1468 and the Automation Interface 1635 . Once an Add-In is registered 1465 , it can be managed using the Add-In Manager 1588 .
1584
1592
3. Manage Add-Ins Register an Add-In 1465 (developed in-house or brought-in) The Add-In Manager 1588
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 Connecting to the Interface 1635 topic. 3. Create a COM Class and implement each of the general Add-In Events You only have to define methods for events to respond to.
1589
4. Add a registry key that identifies your Add-In to Enterprise Architect, as described in the Deploying AddIns 1585 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
1585
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
2. Register the DLL as appropriate to your platform: If compiled as a native Win32 DDL, such as VB6 or C++, register the DDL using the regsvr32 command from the command prompt; for example:
regsvr32 "C:\Program Files\MyCompany\EAAddin\EAAddin.dll"
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.
1586
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.
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.
1587
Additionally, because automation clients hook into Enterprise Architect, which creates Add-Ins which in turn hook back into Enterprise Architect, it is possible to get into a deadlock situation where Enterprise Architect and the Add-Ins won't let go of one another and keep each other active. An Add-In might retain hooks into Enterprise Architect because: It keeps a private reference to an Enterprise Architect object (see Holding State Information It has been created by .NET and the GC mechanism hasn't got around to releasing it. There are two actions required to avoid deadlock situations: Automation controllers must call Repository.CloseAddins() at some point (presumably at the end of processing). Add-Ins must release all references to Enterprise Architect in the Disconnect() event. See the Add-In Methods 1589 topic for details. 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.
1587
above), or
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).
1588
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.
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
1998-2009 Sparx Systems Pty Ltd
1589
the Project Browser and open the Properties window for the element by double-clicking in the Model Search.
1593
1590
The chief uses for EA_Connect are in initializing global Add-In data and for identifying the Add-In as an MDG Add-In 1625 . Also look at EA_Disconnect
1590
Syntax
Function EA_Connect(Repository As EA.Repository) As String The EA_Connect function syntax has the following elements: Parameter Repository Type EA.Repository
1648
Direction IN
Description 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
String identifying a specialized type of Add-In: Type "MDG" "" Details MDG Add-Ins receive MDG Events None-specialized Add-In.
1625
1589
Syntax
Sub EA_Disconnect()
Return Value
None.
1591
1591
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: Parameter Type Direction Description String representing the part of the user interface that brought up the menu. Can be TreeView, MainMenu or Diagram. 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. 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
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.
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: Parameter Type Directio n Description
Boolean. Set to True to check this particular menu option. Boolean. Set to False to disable this particular menu option. The name of the option actually clicked, for example, Create a New Invoice. String representing the part of the user interface that brought up the menu. Can be TreeView, MainMenu or Diagram. 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.
1592
Parameter
Type
Directio n IN
Description
Repository
EA. Repository
1648
An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Notice that your code can directly access Enterprise Architect data and UI elements using Repository methods. Also look at EA_GetMenuItems
1590
1647
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: Parameter ItemName MenuName Repository Type String String EA.Repository
1648
Direction
Description The name of the option actually clicked, for example, Create a New Invoice. 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.
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
None.
1593
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
1593
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: Parameter ID LineText Type Long String Direction Description IN IN IN The ID value specified in the original call to Repository.WriteOutput (). The text that had been supplied as the String parameter in the original call to Repository.WriteOutput(). An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The name of the tab that the click occurred in. Usually this would have been created through Repository.AddTab().
TabName
String
IN
Return Value
None.
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: Parameter ID LineText Type Long String Direction Description IN IN IN The ID value specified in the original call to Repository.WriteOutput() . The text that had been supplied as the String parameter in the original call to Repository.WriteOutput(). An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1594
Parameter TabName
Type String
Direction Description IN The name of the tab that the click occurred in. Usually this would have been created through Repository.AddTab().
Return Value
None.
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: Parameter ItemName Type String Direction Description The name of the option actually clicked, for example, Create a New Invoice. String representing the part of the user interface that brought up the menu. Can be Treeview, MainMenu or Diagram. 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. 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
None.
1595
Compartment Events 1613 Model Validation Broadcasts 1615 Retrieve Model Template Event 1624 Initialize Technology Event 1607
MDG Events 1625 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.
and EA_FileNew
1596
Syntax
Sub EA_FileOpen(Repository As EA.Repository) The EA_FileOpen function syntax contains the following elements: Parameter Type Direction Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository EA.Repository IN
1648
Return Value
None.
and EA_FileNew
1596
Syntax
Sub EA_FileClose(Repository As EA.Repository) The EA_FileClose function syntax contains the following elements: Parameter Repository Type EA. Repository
1648
Direction Description IN An EA.Repository object representing the Enterprise Architect model about to be closed. Poll its members to retrieve model data and user interface status information.
Return Value
None.
1596
and EA_FileOpen
1595
Syntax
Sub EA_FileNew(Repository As EA.Repository) The EA_FileNew function syntax contains the following elements: Parameter Type Direction Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository EA.Repository IN
1648
Return Value
None.
18.6.5.4.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: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the element to be deleted: ElementID: A long value corresponding to Element. ElementID.
1648
Repository EA.Repository
IN
An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1998-2009 Sparx Systems Pty Ltd
1597
Return Value
Return True to enable deletion of the element from the model. Return False to disable deletion of the element.
18.6.5.4.2 EA_OnPreDeleteConnector
Details
EA_OnPreDeleteConnector notifies Add-Ins that a connector is to be deleted from the model. It enables AddIns 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: Parameter Info Type EA. EventProperties
1665
Direction IN
Description Contains the following EventProperty Objects for the connector to be deleted: ConnectorID: A long value corresponding to Connector. ConnectorID.
Repository
EA.Repository
1648
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 connector from the model. Return False to disable deletion of the connector.
18.6.5.4.3 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: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the connector to be deleted: DiagramID: A long value corresponding to Diagram. DiagramID IN An EA.Repository object representing the currently-open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repositor y
EA.Repository
1648
1598
Return Value Return True to enable deletion of the diagram from the model. Return False to disable deletion of the diagram.
18.6.5.4.4 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: Parameter Info Type Direction Description Contains the following EventProperty Objects for the connector to be deleted: PackageID: A long value corresponding to Package. PackageID. IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
EA. IN EventProperties
1665
Repository EA.Repository
1648
Return Value
Return True to enable deletion of the package from the model. Return False to disable deletion of the package.
1600
18.6.5.5.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 Enterprise Architect UML 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
1603
1599
Syntax
Function EA_OnPreNewElement(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewElement function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the element to be created: 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.
1648
Repository EA.Repository
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.
18.6.5.5.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 Enterprise Architect UML 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
1599
Syntax
Function EA_OnPreNewConnector(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewConnector function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the connector to be created: 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 SupplierID: A long value corresponding to Connector. SupplierID DiagramID: A long value corresponding to Connector. DiagramID.
1600
Parameter
Type
Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository EA.Repository
1648
Return Value
Return True to enable addition of the new connector to the model. Return False to disable addition of the new connector.
18.6.5.5.3 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 AddIn can disable addition of the object. Also look at EA_OnPostNewDiagramObject
1604
Syntax
Function EA_OnPreNewDiagramObject(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewDiagramObject function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the object to be created: 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.
1648
Repository EA.Repository
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.
18.6.5.5.4 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
1604
1601
Syntax
Function EA_OnPreNewAttribute(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewAttribute function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the attribute to be created: 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. IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository
EA.Repository
1648
Return Value
Return True to enable addition of the new attribute to the model. Return False to disable addition of the new attribute.
18.6.5.5.5 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
1605
Syntax
Function EA_OnPreNewMethod(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewMethod function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the method to be created: 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.
1648
Repository
EA.Repository
IN
An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1602
Return Value
Return True to enable addition of the new method to the model. Return False to disable addition of the new method.
18.6.5.5.6 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 Enterprise Architect UML 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
1606
Syntax
Function EA_OnPreNewPackage(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreNewPackage function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the package to be created: 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. IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository
EA.Repository
1648
Return Value
Return True to enable addition of the new package to the model. Return False to disable addition of the new package.
Syntax
Sub EA_OnPreExitInstance(Repository As EA.Repository) The EA_OnPreExitInstance function syntax contains the following element: Parameter Repository Type EA.Repository
1648
Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1603
Return Value
None.
1604
18.6.5.7.1 EA_OnPostNewElement
Details
EA_OnPostNewElement notifies Add-Ins that a new element has been created on a diagram. It enables AddIns to modify the element upon creation. This event occurs after a user has dragged a new element from the Enterprise Architect UML 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
1598
Syntax
Function EA_OnPostNewElement(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewElement function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty objects for the new element: ElementID: A long value corresponding to Element. ElementID.
1648
Repository
EA.Repository
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.
18.6.5.7.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 Enterprise Architect UML 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
1599
1604
Syntax
Function EA_OnPostNewConnector(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewConnector function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty objects for the new connector: ConnectorID: A long value corresponding to Connector. ConnectorID.
1648
Repository
EA.Repository
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.
18.6.5.7.3 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 Enterprise Architect 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
1600
Syntax
Function EA_OnPostNewDiagramObject(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewDiagramObject function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty objects for the new element: ObjectID: A long value corresponding to Object. ObjectID.
1648
Repository
EA.Repository
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.
18.6.5.7.4 EA_OnPostNewAttribute
Details
EA_OnPostNewAttribute notifies Add-Ins that a new attribute has been created on a diagram. It enables AddIns to modify the attribute upon creation.
1998-2009 Sparx Systems Pty Ltd
1605
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
1600
Syntax
Function EA_OnPostNewAttribute(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewAttribute function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction IN
Description Contains the following EventProperty objects for the new attribute: AttributeID: A long value corresponding to Attribute. AttributeID.
Repository EA.Repository
1648
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 attribute has been updated during this notification. Return False otherwise.
18.6.5.7.5 EA_OnPostNewMethod
Details
EA_OnPostNewMethod notifies Add-Ins that a new method has been created on a diagram. It enables AddIns 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
1601
Syntax
Function EA_OnPostNewMethod(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewMethod function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction IN
Description Contains the following EventProperty objects for the new method: MethodID: A long value corresponding to Method. MethodID.
Repository
EA.Repository
1648
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 method has been updated during this notification. Return False otherwise.
1606
18.6.5.7.6 EA_OnPostNewPackage
Details
EA_OnPostNewPackage notifies Add-Ins that a new package has been created on a diagram. It enables AddIns to modify the package upon creation. This event occurs when a user drags a new package from the Enterprise Architect UML 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
1602
Syntax
Function EA_OnPostNewPackage(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostNewPackage function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty objects for the new package: PackageID: A long value corresponding to Package. PackageID. IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository EA.Repository
1648
Return Value
Return True if the package has been updated during this notification. Return False otherwise.
Syntax
Sub EA_OnPostInitialized(Repository As EA.Repository) The EA_OnPostInitialized function syntax contains the following elements. Parameter Repository Type EA.Repository
1648
Direction Description 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
None.
1607
Syntax
Function EA_OnPostTransform(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPostTransform function syntax contains the following elements: Parameter Info Type EA. EventProperties
1665
Direction Description IN Contains the following EventProperty Objects for the transform performed: Transform: A string value corresponding to the name of the transform used PackageID: A long value corresponding to Package. PackageID of the destination package.
1648
Repository
EA.Repository
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
Reserved for future use.
18.6.5.10.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 Architect loads and enables it.
Syntax
Function EA_OnInitializeTechnologies(Repository As EA.Repository) As Object The EA_OnInitializeTechnologies function syntax contains the following element: Parameter Repository Type EA. Direction Description IN An EA.Repository object representing the currently open Enterprise
1608
Parameter
Type Repository
1648
Direction Description Architect model. Poll its members to retrieve model data and user interface status information.
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
18.6.5.10.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 491 dialog 491 , or by selecting the technology in the listbox in the Default Tools 132 toolbar 132 ). 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
1608
Syntax
Function EA_OnPreActivateTechnology(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreActivateTechnology function syntax contains the following elements: Parameter Info Type Direction Description Contains the following EventProperty objects for the MDG Technology to be activated: TechnologyID: A string value corresponding to the MDG Technology ID. Repository EA.Repository
1648
EA.EventProperties IN
1665
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.
18.6.5.10.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 491 dialog 491 , or by selecting the technology in the listbox in the Default Tools 132 toolbar 132 ). 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
1608
1609
Syntax
Function EA_OnPostActivateTechnology(Repository As EA.Repository, Info As EA.EventProperties) The EA_OnPostActivateTechnology function syntax contains the following elements: Parameter Info Type Direction Description Contains the following EventProperty objects for the MDG Technology to be activated: TechnologyID: A string value corresponding to the MDG Technology ID. Repository EA.Repository
1648
EA.EventProperties IN
1665
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.
18.6.5.10.4 EA_OnPreDeleteTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer recommended. See: EA_OnPreActivateTechnology 1608 EA_OnPostActivateTechnology 1608 EA_OnInitializeTechnologies 1607 .
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
1610
Syntax
Function EA_OnPreDeleteTechnology(Repository As EA.Repository, Info As EA.EventProperties) As Boolean The EA_OnPreDeleteTechnology function syntax contains the following elements: Parameter Info Type Direction Description Contains the following EventProperty objects for the MDG Technology to be deleted: TechnologyID: A string value corresponding to the MDG Technology ID. Repository EA.Repository
1648
EA.EventProperties IN
1665
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 MDG Technology resource from the model. Return False to disable deletion of the MDG Technology resource.
1610
18.6.5.10.5 EA_OnDeleteTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer recommended. See: EA_OnPreActivateTechnology 1608 EA_OnPostActivateTechnology 1608 EA_OnInitializeTechnologies 1607 .
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
1609
Syntax
Sub EA_OnDeleteTechnology(Repository As EA.Repository, Info As EA.EventProperties) The EA_OnDeleteTechnology function syntax contains the following elements: Parameter Type Info EA. EventProperties
1665
Direction Description IN Contains the following EventProperty objects: TechnologyID: A string value corresponding to the MDG Technology ID. IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repositor y
EA.Repository
1648
Return Value
None.
18.6.5.10.6 EA_OnImportTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer recommended. See: EA_OnPreActivateTechnology 1608 EA_OnPostActivateTechnology 1608 EA_OnInitializeTechnologies 1607 .
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: Parameter Info Type EA. EventProperties Direction Description IN Contains the following EventProperty objects: TechnologyID: A string value corresponding to the MDG
1998-2009 Sparx Systems Pty Ltd
1611
Parameter
Type
1665
Repository EA.Repository
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
None.
18.6.5.11.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 1595 . Also look at EA_OnContextItemDoubleClicked
1612
and EA_OnNotifyContextItemModified
1612
Syntax
Sub EA_OnContextItemChanged(Repository As EA.Repository, GUID As String, ot as EA.ObjectType) The EA_OnContextItemChanged function syntax contains the following elements: Parameter GUID Type String Direction Description IN Contains the GUID of the new context item. This value corresponds to the following properties, depending on the value of the ot parameter: ot (ObjectType) otElement otPackage otDiagram otAttribute otMethod otConnector otRepository ot Repository EA. ObjectType IN - GUID value - Element.ElementGUID - Package.PackageGUID - Diagram.DiagramGUID - Attribute.AttributeGUID - Method.MethodGUID - Connector.ConnectorGUID - NOT APPLICABLE, GUID is an empty string
Specifies the type of the new context item. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
EA.Repository IN
1648
1612
Return Value
None.
18.6.5.11.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
1611
and EA_OnNotifyContextItemModified
1612
Syntax
Function EA_OnContextItemDoubleClicked(Repository As EA.Repository, GUID As String, ot as EA. ObjectType) The EA_OnContextItemDoubleClicked function syntax contains the following elements: Parameter GUID Type String Direction Description IN Contains the GUID of the new context item. This value corresponds to the following properties, depending on the value of the ot parameter: ot (ObjectType) otElement otPackage otDiagram otAttribute otMethod otConnector ot EA. ObjectType IN IN - GUID value - Element.ElementGUID - Package.PackageGUID - Diagram.DiagramGUID - Attribute.AttributeGUID - Method.MethodGUID - Connector.ConnectorGUID
Specifies the type of the new context item. 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 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.
18.6.5.11.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
1611
and EA_OnContextItemDoubleClicked
1612
1613
Syntax
Sub EA_OnNotifyContextItemModified(Repository As EA.Repository, GUID As String, ot as EA. ObjectType) The EA_OnNotifyContextItemModified function syntax contains the following elements: Parameter GUID Type String Direction IN Description Contains the GUID of the new context item. This value corresponds to the following properties, depending on the value of the ot parameter: ot (ObjectType) otElement otPackage otDiagram otAttribute otMethod otConnector ot Repository EA.ObjectType EA.Repository
1648
IN IN
Specifies the type of the new context item. 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
None.
18.6.5.12.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 1614 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 The EA_QueryAvailableCompartments function syntax contains the following elements: Parameter Repository Type EA.Repository
1648
Direction IN
Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1614
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 If Len(sReturn) > 0 Then sReturn = Left(sReturn, Len(sReturn)-1) End If EA_QueryAvailableCompartments = sReturn End Function
18.6.5.12.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: Parameter oType Repository Type ObjectType EA.Repository
1648
Direction Description IN IN The type of the element for which data is being requested. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The name of the compartment for which data is being requested. The GUID of the element for which data is being requested.
sCompartment sGUID
String String
IN IN
Return Value
Variant containing a formatted string. See the example below to understand the format.
Example
Function EA_GetCompartmentData(Repository As EA.Repository, sCompartment As String, sGUID As String, oType As EA.ObjectType) As Variant If Repository Is Nothing Then Exit Function End If Dim sCompartmentData As String Dim oXML As MSXML2.DOMDocument Dim Nodes As MSXML2.IXMLDOMNodeList 1998-2009 Sparx Systems Pty Ltd
1615
Dim Node1 As MSXML2.IXMLDOMNode Dim Node As MSXML2.IXMLDOMNode Dim sData As String sCompartmentData = "" Set oXML = New MSXML2.DOMDocument sData = "" On Error GoTo ERR_GetCompartmentData oXML.loadXML (Repository.GetTreeXMLByGUID(sGUID)) Set Node1 = oXML.selectSingleNode("//ModelItem") If Node1 Is Nothing Then Exit Function End If sCompartmentData = sCompartmentData + "Name=" + sCompartment + ";" sCompartmentData = sCompartmentData + "OwnerGUID=" + sGUID + ";" sCompartmentData = sCompartmentData + "Options=SkipIfOnDiagram&_eq_^1&_sc_^" Select Case sCompartment Case "parts" Set Nodes = Node1.selectNodes("ModelItem[@Metatype=""Part""]") 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 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
1616
EA_OnEndValidation completed.
1616
1620
18.6.5.13.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 1718 section.
Syntax
Sub EA_OnInitializeUserRules(Repository As EA.Repository) The EA_OnInitializeUserRules function syntax contains the following elements: Parameter Repository Type EA.Repository
1648
Direction IN
Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
18.6.5.13.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: Parameter Args Repository Type Direction Description Contains a list of Rule Categories that are active for the current invocation of model validation. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1648
18.6.5.13.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:
1617
Parameter Args
Direction IN
Description Contains a list of Rule Categories that were active for the invocation of model validation that has just completed. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
Repository
1648
IN
18.6.5.13.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
1616
Syntax
Sub EA_OnRunElementRule(Repository As EA.Repository, RuleID As String, Element As EA.Element) The EA_OnRunElementRule function syntax contains the following elements: Parameter Element Repository Type EA.Element Direction IN Description The element to potentially perform validation on. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
EA.Repository IN
1648
RuleID
String
IN
18.6.5.13.5 EA_OnRunPackageRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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: Parameter PackageID Type Long Direction IN Description The ID of the package to potentially perform validation on. Use the Repository.GetPackageByID method to retrieve the package object. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule method.
Repository
EA.Repository
1648
IN
RuleID
String
IN
1618
18.6.5.13.6 EA_OnRunDiagramRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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: Parameter DiagramID Type Long Direction IN Description The ID of the diagram to potentially perform validation on. Use the Repository.GetDiagramByID method to retrieve the diagram object. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
Repository
EA.Repository
1648
IN
RuleID
String
IN
18.6.5.13.7 EA_OnRunConnectorRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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: Parameter ConnectorI D Repository Type Long Direction IN Description The ID of the connector to potentially perform validation on. Use the Repository.GetConnectorByID method to retrieve the connector object. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
EA. Repository
1648
IN
RuleID
String
IN
18.6.5.13.8 EA_OnRunAttributeRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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.
1619
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: Parameter AttributeGUID Type String Direction Description IN The GUID of the attribute to potentially perform validation on. Use the Repository.GetAttributeByGuid method to retrieve the attribute object. The ID of the object that owns the given attribute. Use the Repository.GetObjectByID method to retrieve the object. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
ObjectID Repository
Long EA.Repository
1648
IN IN
RuleID
String
IN
18.6.5.13.9 EA_OnRunMethodRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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: Parameter MethodGUI D ObjectID Repository Type String Direction IN Description The GUID of the method to potentially perform validation on. Use the Repository.GetMethodByGuid method to retrieve the method object. The ID of the object that owns the given method. Use the Repository.GetObjectByID method to retrieve the object. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
Long
IN
EA.Repository IN
1648
RuleID
String
IN
18.6.5.13.10 EA_OnRunParameterRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1616 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.
1620
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: Parameter MethodGUID Type String Direction IN Description The GUID of the method that owns the given parameter. Use the Repository.GetMethodByGuid method to retrieve the method object. The ID of the object that owns the given parameter. Use the Repository.GetObjectByID method to retrieve the object. The GUID of the parameter to potentially perform validation on. Use it to retrieve the parameter by iterating through the Method.Parameters collection. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The ID that was passed into the Project.DefineRule command.
Long String
IN IN
EA. Repository
1648
IN
RuleID
String
IN
Main.cs
using System; namespace myAddin { public class Main { public Rules theRules; public Main() { theRules = new Rules(); } public string EA_Connect(EA.Repository Repository) { return ""; } public void EA_Disconnect() { GC.Collect(); GC.WaitForPendingFinalizers(); } private bool IsProjectOpen(EA.Repository Repository) { try { EA.Collection c = Repository.Models; return true; } catch { return false; } } 1998-2009 Sparx Systems Pty Ltd
1621
public object EA_GetMenuItems(EA.Repository Repository, string MenuLocation, string MenuName) { switch (MenuName) { case "": return "-&myAddin"; case "-&myAddin": string[] ar = { "&Test" }; return ar; } return ""; } public void EA_GetMenuState(EA.Repository Repository, string MenuLocation, string MenuName, string ItemName, ref bool IsEnabled, ref bool IsChecked) { // if no open project, disable all menu options if (IsProjectOpen(Repository)) IsEnabled = true; else IsEnabled = false; } public void EA_MenuClick(EA.Repository Repository, string MenuLocation, string MenuName, string ItemName) { switch (ItemName) { case "&Test"; DoTest(Repository); break; } } public void EA_OnInitializeUserRules(EA.Repository Repository) { if (Repository != null) { theRules.ConfigureCategories(Repository); theRules.ConfigureRules(Repository); } } public void EA_OnRunElementRule(EA.Repository Repository, string RuleID, EA.Element element) { theRules.RunElementRule(Repository, RuleID, element); } public void EA_OnRunDiagramRule(EA.Repository Repository, string RuleID, long lDiagramID) { theRules.RunDiagramRule(Repository, RuleID, lDiagramID); } public void EA_OnRunConnectorRule(EA.Repository Repository, string RuleID, long lConnectorID) { theRules.RunConnectorRule(Repository, RuleID, lConnectorID); } public void EA_OnRunAttributeRule(EA.Repository Repository, string RuleID, string AttGUID, long lObjectID) { return; } public void EA_OnDeleteTechnology(EA.Repository Repository, EA.EventProperties Info) { return; } public void EA_OnImportTechnology(EA.Repository Repository, EA.EventProperties Info) { return; } private void DoTest(EA.Repository Rep)
1622
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; private const string cRule01 = "Rule01"; private const string cRule02 = "Rule02"; private const string cRule03 = "Rule03"; // TODO: expand this list as much as necessary public Rules() { m_RuleIDs = new System.Collections.ArrayList(); m_RuleIDEx = new System.Collections.ArrayList(); } private string LookupMap(string sKey) { return DoLookupMap(sKey, m_RuleIDs, m_RuleIDEx); } private string LookupMapEx(string sRule) { return DoLookupMap(sRule, m_RuleIDEx, m_RuleIDs); } private string DoLookupMap(string sKey, ArrayList arrValues, ArrayList arrKeys) { if (arrKeys.Contains(sKey)) return arrValues[arrKeys.IndexOf(sKey)].ToString(); else return ""; } private void AddToMap(string sRuleID, string sKey) { m_RuleIDs.Add(sRuleID); m_RuleIDEx.Add(sKey); } private string GetRuleStr(string sRuleID) { switch (sRuleID) { case cRule01: return "Error Message 01"; case cRule02: return "Error Message 02"; case cRule03: return "Error Message 03"; // TODO: add extra cases as much as necessary } return ""; } public void ConfigureCategories(EA.Repository Repository) { EA.Project Project = Repository.GetProjectInterface(); m_sCategoryID = Project.DefineRuleCategory("Enterprise Collaboration Architecture (ECA) Rules"); }
1623
public void ConfigureRules(EA.Repository Repository) { EA.Project Project = Repository.GetProjectInterface(); AddToMap(Project.DefineRule(m_sCategoryID, EA.EnumMVErrorType.mvError, GetRuleStr(cRule01)), cRule01); AddToMap(Project.DefineRule(m_sCategoryID, EA.EnumMVErrorType.mvError, GetRuleStr(cRule02)), cRule02); AddToMap(Project.DefineRule(m_sCategoryID, EA.EnumMVErrorType.mvError, GetRuleStr(cRule03)), cRule03); // TODO: expand this list } public void RunConnectorRule(EA.Repository Repository, string sRuleID, long lConnectorID) { EA.Connector Connector = Repository.GetConnectorByID((int)lConnectorID); if (Connector != null) { switch (LookupMapEx(sRuleID)) { case cRule02: // TODO: perform rule 2 check break; // TODO: add more cases } } } public void RunDiagramRule(EA.Repository Repository, string sRuleID, long lDiagramID) { EA.Diagram Diagram = Repository.GetDiagramByID((int)lDiagramID); if (Diagram != null) { switch (LookupMapEx(sRuleID)) { case cRule03: // TODO: perform rule 3 check break; // TODO: add more cases } } } public void RunElementRule(EA.Repository Repository, string sRuleID, EA.Element Element) { if (Element != null) { switch (LookupMapEx(sRuleID)) { case cRule01: DoRule01(Repository, Element); break; // TODO: add more cases } } } private void DoRule01(EA.Repository Repository, EA.Element Element) { if (Element.Stereotype != "myStereotype") return; // TODO: validation logic here // report validation errors EA.Project Project = Repository.GetProjectInterface(); Project.PublishResult(LookupMap(cRule01), EA.EnumMVErrorType.mvError, GetRuleStr(cRule01)); } } }
1624
Syntax
Function EA_OnRetrieveModelTemplate(Repository As EA.Repository,sLocation As String) As String The EA_OnRetrieveModelTemplate function syntax contains the following elements: Parameter Repository Type EA. Repository
1648
Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. 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.
sLocation
String
IN
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
1625
Unlike ordinary Add-Ins, responding to MDG Add-In events is not optional, and methods must be published for each of the MDG Events 1625 . Two examples of MDG Add-Ins are the commercially available MDG Link for Eclipse and MDG Link for Visual Studio, published by Sparx Systems.
1626
MDG_Connect 1626 MDG_Disconnect 1627 MDG_GetConnectedPackages MDG_GetProperty 1628 MDG_Merge 1629 MDG_NewClass 1630 MDG_PostGenerate 1630 MDG_PostMerge 1631 MDG_PreGenerate 1632 MDG_PreMerge 1632 MDG_PreReverse 1633 MDG_RunExe 1633 MDG_View 1634
1627
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
1633
Syntax
Sub MDG_BuildProject(Repository As EA.Repository, PackageGuid As String) The MDG_BuildProject function syntax contains the following elements: Parameter PackageGuid Repository Type String EA.Repository
1648
Direction IN IN
Description The GUID identifying the Enterprise Architect package subtree that is controlled by the Add-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
None.
18.6.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 perworkstation 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.
1627
The PackageID parameter is provided to aid fast retrieval of package details from Enterprise Architect, should this be required. Also look at MDG_Disconnect
1627
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: Parameter PackageGui d PackageID Repository Type String Direction IN Description The unique ID identifying the project provided by the Add-In when a connection to a project branch of an Enterprise Architect model was first established. The PackageID of the Enterprise Architect package the user has requested to have connected to an external project. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
IN IN
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.
18.6.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
1626
Syntax
Function MDG_Disconnect(Repository As EA.Repository, PackageGuid As String) As Long The MDG_Disconnect function syntax contains the following elements: Parameter PackageGui d Repository Type String Direction IN Description The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
EA. Repository
1648
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.
18.6.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
1628
return a list of the available connections to external projects for this Add-In. Also look at MDG_Connect
1626
Syntax
Function MDG_GetConnectedPackages(Repository As EA.Repository) As Variant The MDG_GetConnectedPackages function syntax contains the following elements: Parameter Type Direction IN Description 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
Returns an array of GUID strings representing individual Enterprise Architect packages.
18.6.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:
if( PropertyName == "HiddenMenus" ) return mgBuildProject + mgRun;
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: Parameter Type Direction Description IN IN The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. The name of the property that is used by Enterprise Architect. See Details for the possible values. An EA.Repository object representing the currently-open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
IN
Return Value
See Details, above.
1629
18.6.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
1626
, MDG_PreMerge
1632
and MDG_PostMerge
1631
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: Parameter ExportFiles Type Variant Direction Description 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). The string array containing the list of new model objects (in Object ID format) to be exported by Enterprise Architect to the code project. A value indicating whether to ignore any files locked by the code project (that is, "TRUE" or "FALSE". 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. The string value containing the name of the code language supported by the code project connected to the model branch. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. A string array containing a list of objects (Object ID format) to be jointly synchronized between the model branch and the project. See below 1630 for the format of the Object IDs. The value determining the user-selected type of synchronization to take place. See below 1630 for a list of valid values.
ExportObject s
Variant
OUT
OUT OUT
OUT IN IN
SynchObjects Variant
OUT
SynchType
String
OUT
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.
1630
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)*
18.6.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
1632
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: Parameter CodeID Language PackageGui d Repository Type String String String Direction Description IN OUT IN A string used to identify the code element before it is created, for more information see MDG_View 1634 . A string used to identify the programming language for the new Class. The language must be supported by Enterprise Architect. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
EA. Repository
1648
IN
Return Value
Returns a string containing the file path that should be assigned to the Class.
18.6.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.
1998-2009 Sparx Systems Pty Ltd
1631
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
1632
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: Parameter Type Directio n IN IN IN Description
A string containing the proposed contents of the file. The path of the file Enterprise Architect intends to overwrite. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
EA.Repository IN
1648
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.
18.6.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 1632 , MDG_PostGenerate 1630 and MDG_PreReverse 1633 . Also look at MDG_PreMerge
1632
and MDG_Merge
1629
Syntax
Function MDG_PostMerge(Repository As EA.Repository, PackageGuid As String) As Long The MDG_PostMerge function syntax contains the following elements: Parameter Repository Type EA. Repository
1648
Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.
1632
Parameter
Type
Direction Description IN The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In.
PackageGui String d
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
18.6.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
1630
Syntax
Function MDG_PreGenerate(Repository As EA.Repository, PackageGuid As String) As Long The MDG_PreGenerate function syntax contains the following elements: Parameter Repository Type EA. Repository
1648
Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In.
PackageGuid String
IN
Return Value
Return a zero value to abort generation. Any other value enables the generation to continue.
18.6.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 1632 , MDG_PostGenerate 1630 and MDG_PreReverse 1633 . Also look at MDG_Merge
1629
and MDG_PostMerge
1631
Syntax
Function MDG_PreMerge(Repository As EA.Repository, PackageGuid As String) As Long The MDG_PreMerge function syntax contains the following elements:
1998-2009 Sparx Systems Pty Ltd
1633
Parameter Repository
Direction IN
Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In.
PackageGui d
String
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.
18.6.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
1630
and MDG_PreGenerate
1632
Syntax
Sub MDG_PreReverse(Repository As EA.Repository, PackageGuid As String, FilePaths As Variant) The MDG_PreReverse function syntax contains the following elements: Parameter Repository Type EA. Repository
1648
Direction IN
Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. An array of filepaths pointed to the files that are to be reverse engineered.
PackageGui d FilePaths
String
IN
String array
IN
Return Value
None.
18.6.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
1626
Syntax
Sub MDG_RunExe(Repository As EA.Repository, PackageGuid As String) The MDG_RunExe function syntax contains the following elements:
1634
Parameter Repository
Direction IN
Description An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In.
PackageGui d
String
IN
Return Value
None.
18.6.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: Parameter Repository Type EA. Repository Direction Description IN An EA.Repository object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information. The GUID identifying the Enterprise Architect package sub-tree that is controlled by the Add-In. Identifies the code element in the following format: <type>ElementPart<type>ElementPart... where each element is proceeded with a token identifying its type: @ -namespace # - Class $ - attribute % - operation For example if a user has selected the m_Name attribute of Class1 located in namespace Name1, the class ID would be passed through in the following format:
@Name1#Class1%m_Name
IN 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.
1635
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 185 window 185 . 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.
1637
1636
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:
Public Sub ShowRepository() Dim MyRep As New EA.Repository MyRep.OpenFile "c:\eatest.eap" End Sub
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:
private void button1_Click(object sender, System.EventArgs e) { EA.Repository r = new EA.RepositoryClass(); r.OpenFile("c:\\eatest.eap"); }
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 1640 for their use. The following example creates and opens a repository object.
public void OpenRepository() 1998-2009 Sparx Systems Pty Ltd
1637
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 reenter Enterprise Architect using the following:
To unregister Enterprise Architect: ea.exe /unregister To register Enterprise Architect: ea.exe /register.
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.
1638
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 MSProject is installed this must also be set up.
Additionally, you should note the following tips and tricks: An instance of the Enterprise Architect (EA.exe) process is executed when you initialize a new repository object. This process must remain running in order to perform automation tasks. If the main window is visible, you can safely minimize it, but it must remain running. The Enterprise Architect ActiveX Interface is a functional interface rather than a data interface. When you load data through the interface there is a noticeable delay as Enterprise Architect user interface elements (such as Windows, menus) are loaded and the specified database connection is established. Collections use a zero-based index; for example, Repository.Models(0) represents the first model in the repository. During the development of your client software your program might terminate unexpectedly and leave EA. exe running in such a state that it is unable to support further interface calls. If your program terminates abnormally, ensure that Enterprise Architect is not left running in the background (see the Windows Task Manager / Process tab). A handle to a currently running instance of Enterprise Architect can be obtained through the use of a GetObject() call. For more information, refer to the reference page for the App 1643 object. Accessing your
1998-2009 Sparx Systems Pty Ltd
1639
Enterprise Architect model via the App object enables querying the current User Interface status, such as using GetContextItem() on the Repository 1648 object to detect the current selection by the user, allowing for rapid prototyping and testing.
There are additional concerns when controlling a running instance of Enterprise Architect that loads Add-Ins see the Tricks and Traps 1586 topic for details.
With this you can: Add a command line for an application Define parameters to pass to this application The parameters required for running the AutInt executable are: The Enterprise Architect file parameter $f and The current PackageID $p Hence the arguments should simply contain: $f, $p The available parameters for passing information to external applications are: Parameter $d $D Description Diagram ID Diagram GUID Notes ID for accessing associated diagram. GUID for accessing the associated diagram.
1640
Parameter $e $E $f $F $p $P
Description Comma separated list of element IDs Comma separated list of element GUIDs Project Name Calling Application (Enterprise Architect) Current Package ID Package GUID
Notes All elements selected in the current diagram. All elements selected in the current diagram. For example: C:\projects\EAexample.eap. 'Enterprise Architect'. For example: 144. GUID for accessing this package.
Once this has been set up, the application can be called from the main menu in Enterprise Architect using the Tools | YourApplication menu option.
A basic Add-In framework written in C#. www.sparxsystems.com/bin/CS_AddinFramework.zip Useful as a starting point for authoring your own custom Enterprise Architect Add-In. An extension on the CS_AddinFramework example showing how to export Tagged Values to a .csv file. A basic Add-In skeleton written in Delphi. A simple example Add-In written in C#. www.sparxsystems.com/bin/CS_AddinTaggedCSV.zip
www.sparxsystems.com/bin/DelphiDemo.zip www.sparxsystems.com/bin/CS_Sample.zip
18.7.2 Reference
This section provides detailed information on all the objects available in the object model provided by the Automation Interface, covering: Interface Overview 1641 App 1643 Enumerations 1644 Repository 1647 Element 1675 Element Features 1691 Connector 1703 Diagram Package 1710 Project Interface 1718 Code Samples 1729
1641
The following diagram provides a high level overview of the Automation Interface for accessing, manipulating, modifying and creating Enterprise Architect UML 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.
1642
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
1998-2009 Sparx Systems Pty Ltd
1643
Package:: Automation Interface Logical diagram:: Automation Interface Package:: Automation Interface Logical diagram:: Automation Interface Package:: Automation Interface Logical diagram:: Automation Interface Package:: Automation Interface
Connectors
Connector Nesting source > target Nesting source > target Nesting source > target Nesting source > target Nesting source > target Nesting source > target Source Connector Contained Element Repository Contained Element Diagram Contained Element Element Contained Element Project Interface Contained Element ElementFeatures Contained Element Target Overview Containing Element Overview Containing Element Overview Containing Element Overview Containing Element Overview Containing Element Overview Containing Element
18.7.2.2 App
The App object represents a running instance of Enterprise Architect. Its object provides access to the Automation Interface. Attribute Project Repository Visible Type Project Repository Boolean Notes Read only. Provides a handle to the Project Interface. Read only. Provides a handle to the Repository object. Read/Write. Whether or not the application is visible.
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
1644
18.7.2.3 Enumerations
These enumerations are defined by the Automation Interface: ConstLayoutStyles Enum 1644 EnumRelationSetType Enum MDGMenus Enum 1645 ObjectType Enum 1646 PropType Enum 1646 ReloadType Enum 1647 XMIType Enum 1647
1645
1645
The enumeration defines the following formal values: piLite piDesktop piProfessional piCorporate piBusiness piSystemEng piUltimate.
There is no separate value for the trial edition; the Repository.EAEdition attribute contains the appropriate EAEditionTypes value for whichever edition the user has selected to trial.
object.
Use to Hide Build Project menu option. Hide Merge menu option. Hide Run menu option.
1646
All of the following are valid enumeration values: otNone otProject otRepository otCollection otElement otPackage otModel otConnector otDiagram otRequirement otScenario otConstraint otTaggedValue otFile otEffort otMetric otIssue otRisk otTest otDiagramObject otDiagramLink otResource otConnectorEnd otAttribute otMethod otParameter otClient otAuthor otDatatype otStereotype otTaskotTerm otProjectIssues otAttributeConstraint otAttributeTag otMethodConstraint otMethodTag otConnectorConstraint otConnectorTag otProjectResource otReference otRoleTag otCustomProperty otPartition otTransition otEventProperty otEventProperties otPropertyType otProperties otProperty otSwimlaneDef otSwimlanes otSwimlane
1647
1648
18.7.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>
1649
Repository Attributes
Attribute Authors Type Collection
1663
Notes 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. Read/Write. Set this property to true when your automation client has to rapidly insert many elements, operations, attributes and/or operation parameters. Set to false when work is complete. This can result in 10- to 20-fold improvement in adding new elements in bulk.
BatchAppend
Boolean
Clients
Collection
1663
Read only. A list of Clients associated with the project. You can modify, delete and add new Client objects using this collection. Read only. The filename/connection string of the current Repository.
ConnectionString Datatypes
String Collection
1663
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. Read only. Returns the level of core licensed functionality 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.
EAEdition
EAEditionTypes
1645
EAEditionEx EnableCache
EAEditionTypes
1645
Read only. Returns the level of extended licensed functionality available to the current repository. Read/Write. An optimization for pre-loading package objects when dealing with large sets of automation objects. Read/Write. Set this property to false to improve the performance of changes to the model; for example, bulk addition of elements to a package. To reveal the changes to the user, call Repository.RefreshModelView() . Read/Write. Instructs Enterprise Architect to update the Repository with the LastUpdate value. Read only. The identifier string identifying the Enterprise Architect runtime session. Read only. Checks whether User Security is enabled for the current repository.
Boolean
EnableUIUpdates
Boolean
1663
Read only. The System Issues list. Contains ProjectIssues objects, each detailing a particular issue as it relates to the project as a whole. Read only. The identifier string identifying the Enterprise
LastUpdate
String
1650
Attribute
Type
Notes Architect runtime session and the timestamp for when it was set.
LibraryVersion Models
Read only. The build number of the Enterprise Architect runtime. Read only. Models are of type package and belong to a collection of packages. This is the top level entry point to 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.
1646
Read only. Distinguishes objects referenced through the Dispatch interface. Read only. Returns a unique ID for the project.
1663
1672
available to
1663
Read only. Contains available ProjectResource objects to assign to work items within the project. Use the add new, modify and delete functions to manage resources. Read only. The Stereotypes 1673 collection. A list of Stereotype objects that contain information on a stereotype and which elements it can be applied to. Read/Write. Set this property in the EA_OnPostNewElement 1603 or EA_OnPostNewConnector 1603 broadcast events to control whether Enterprise Architect should suppress showing the default Properties dialogs to the user when an element or connector is created.
Stereotypes
Collection
1663
SuppressEADialogs
Boolean
Tasks
Collection
1663
Read only. A list of system tasks (to do list). Each entry is a Task 1674 Item; you can modify, delete and add new tasks. Read only. The project Glossary. Each Term 1675 object is an entry in the Glossary. Add, modify and delete Terms to maintain the Glossary.
Terms
Collection
1663
Repository Methods
Method ActivateDiagram (long DiagramID) Type Notes Activates an already open diagram (that is, makes it the active tab) in the main Enterprise Architect user interface. Parameters: DiagramID: Long - the ID of the diagram to make active. ActivatePerspective (s tring, Boolean Deprecated - no longer in use.
1651
Type
Notes
Activates an open Enterprise Architect tabbed view. Parameters: Name: String - the name of the view to activate.
Activates an enabled MDG Technology. Parameters: Name: String - the name of the Technology to activate.
Boolean
Activates a Toolbox page in the GUI. Returns true if the specified Toolbox page is successfully activated, otherwise returns false. Parameters: Toolbox: String - the name of the Toolbox page to activate. Options: Long - reserved for future use.
Enables you to enter a set of defined searches that last in Enterprise Architect for the life of the application. When Enterprise Architect loads again they must be inserted again by your Add-In. Parameters: sXML: String - the XML of the defined searches; you can get this XML by performing an export of the searches from the Manage Searches 161 dialog 161 in Enterprise Architect.
AddPerspective (string Perspective, long Options) AddTab (string TabName, string ControlID)
Boolean
Deprecated - no longer in use. Adds an ActiveX custom control as a tabbed window. Enterprise Architect creates a control and, if successful, 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.
Provides an Add-In or automation client with the ability to 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.
Provides an Add-In or automation client with the ability to advise the Enterprise Architect user interface that a particular element has changed and, if it is visible in any open diagram, to reload and refresh that element for the user. Parameters: ObjectID: Long - the ID of the element.
1652
Type Boolean
Notes Sets the currently logged on user to be that specified by a name and password. This logs the user into the repository when security is enabled. If security is not enabled an exception (Security not enabled) is thrown. Parameters: Name: String - the name of the user. Password: String - the password of the user.
Boolean
Clears all Audit Logs from the model. If StartDateTime and EndDateTime are not null then only log items that fall into this period are cleared. Returns true for success, false for failure. 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.
Removes all the text from a tab in the Output window. See also CreateOutputTab 1653 , EnsureOutput Visible 1653 , WriteOutput 1661 . 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. Closes a diagram in the current list of diagrams that Enterprise Architect has open. Parameters: DiagramID: Long - the ID of the diagram to close.
Closes any open file. Creates a new .eap model file based on the standard Enterprise Architect Base model, or a shortcut .eap based on a provided SQL connection. Returns true when the new file is created, otherwise returns false. Parameters: CreateType: CreateModelType 1644 - Specify whether to make a new copy of the EABase.eap model, or create a .eap file shortcut to a DBMS repository. The latter option requires a dialog to be opened for the user to provide SQL connection details. FilePath: String - Destination for new .eap file.
1653
Method
Type
Notes ParentWnd: Long - Window handle to act as the parent for the SQL connection dialog. Only required when using cmEAPFromSQLRepository.
Creates a tab in the Output window. See also ClearOutput 1652 , EnsureOutput Visible 1653 , WriteOutput 1661 . Parameters: Name: String - the name of the tab to create.
Boolean
Deprecated - no longer in use. 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 Deploying MDG Technologies 1522 (from Add-Ins). Parameters: ID: String - the ID of the technology.
Boolean
Ensures that a specified tab in the Output window is visible to the user. The Output window is made visible if it is hidden. See also ClearOutput 1652 , CreateOutputTab 1653 , WriteOutput 1661 . Parameters: Name: String - the name of the tab to make visible.
Enables you to run the active package build script based on your current selection in the Project Browser. You can also 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 DotNET programmers where the garbage collector does not immediately release all referenced COM objects. String Attribute
1692
Deprecated - no longer in use. Returns a pointer to an attribute in the repository, located by its GUID.This is usually found using the AttributeGUID property of an attribute.
1654
Method
Type
1692
Returns a pointer to an attribute in the repository, located by its ID. This is usually found using the AttributeID property of an attribute. Parameters: Id: String - the ID of the attribute to locate.
Connector
1704
Returns a pointer to a connector in the repository, located by its GUID. This is usually found using the ConnectorGUID property of a connector. Parameters: Guid: String - the GUID of the connector to locate.
Connector
1704
Searches the repository for a connector with a specific ID. Parameters: ConnectorID: Long - the ID of the connector to locate.
ObjectType
1646
Sets a pointer to an item in context within Enterprise Architect. Also returns the corresponding ObjectType. For additional information about ContextItems and the supported ObjectTypes see the GetContextItemType method (below). Parameters: Item: Object - the item to point to.
GetContextItemType ()
ObjectType
1646
Returns the ObjectType of an item in context within Enterprise Architect. A ContextItem is defined as an item selected anywhere within the Enterprise Architect GUI including: An item selected in the Project Browser An item selected in an open diagram An item selected in certain dialogs, such as the attribute Properties dialog. The supported ObjectTypes can be any one of the following values: otElement otPackage otDiagram otAttribute otMethod otConnector
GetContextObject () GetCounts ()
Object String
Returns the current context Object. 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.
1711
GetCurrentDiagram ()
Diagram
1655
Type String
Notes If security is not enabled in the repository, an error is generated. If GetGuid is True, a GUID generated by Enterprise Architect representing the user is returned; otherwise the text as entered in System Users/User Details/Login is returned.
Diagram
1711
Returns a pointer to a diagram using the global reference ID (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.
Diagram
1711
Gets a pointer to a diagram using an absolute reference 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.
Element
1678
Returns a pointer to an element in the repository, using the 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.
Element
1678
Gets a pointer to an element using an absolute reference 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.
Enables the user to run a search in Enterprise Architect, returning the result as a collection. For example GetElementsByQuery('Simple','Class1'), w here 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.
Collection
1663
Returns a set of elements as a collection based on a 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
1656
Method
Type
Notes method 1 - Returns empty collection when empty IDList parameter is given. 2 - Use IDList string as an SQL query to populate this collection.
Converts a field from your preferred format to Enterprise Architect's internal format. Returns the field in Enterprise Architect's internal format. Parameters: Format: String - The format to convert the field from. Valid formats are: HTML - Full HTML RTF - Rich Text Format TXT - Plain text Text: String - The field to be converted.
After accessing a field that contains formatting, use this method to convert it to your preferred format. Returns the field in the format specified. Parameters: Format: String - The format to convert the field to. Valid formats are: HTML - Full HTML RTF - Rich Text Format TXT - Plain text Text: String - The field to be converted.
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.
Method
1696
Returns a pointer to a method in the repository. This is usually found using the MethodGUID property of a method. Parameters: Guid: String - the GUID of the method to look for.
Method
1696
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.
Package
1666
Returns a pointer to a package in the repository using the 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.
1657
Type Package
1666
Notes Get a pointer to a package using an absolute reference number (local ID). This is usually found using the PackageID property of an package, and stored for later use to open a package without using the collection GetAt () function. Parameters: PackageID: Long - the ID of the package to locate.
GetProjectInterface ()
Project
1718
Return a pointer to the EA.Project interface 1718 (the XMLbased automation server for Enterprise Architect). Use this interface to work with Enterprise Architect using XML, and also to access utility functions for loading diagrams, running reports and so on.
1672
Reference
Uses the list type to get a pointer to a Reference List object. 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.
String
Returns the version of a specified MDG Technology resource. Parameters: ID: String - the specified technology ID.
ObjectType
1646
Gets an object variable and type corresponding to the 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 ()
ObjectType
1646
Returns the type of the object currently selected in the tree. One of: otDiagram otElement otPackage otAttribute otMethod.
1657
GetTreeSelectedObject ()
Object
() has an
1658
Method
Type
Notes output parameter that is inaccessible by some scripting languages. As an alternative, this method provides the selected item through the return value.
GetTreeSelectedPackage () Package HasPerspective (string Perspective) ImportPackageBuildScript s (string PackageGuid, string BuildScriptXML) String
1666
Returns the package in which the currently selected tree view object is contained. Deprecated - no longer in use. Imports build scripts into a package in Enterprise Architect. Parameters: PackageGuid: String - the GUID of the package into which to import the build scripts. BuildScriptXML: String - the build script XML data, which you can export from within Enterprise Architect.
Boolean
Installs a given MDG Technology resource into the repository. Returns True, if the technology is successfully loaded into the model. Otherwise returns False. 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 Deploying MDG Technologies 1522 (from Add-Ins). Parameters: Technology: String - the contents of the technology resource file.
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() 1651 . 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.
Boolean
Checks whether a specified technology is enabled in Enterprise Architect. Returns True if the MDG Technology resource is enabled. Otherwise returns False. Parameters: ID: String - the technology ID to check for.
1659
Type Boolean
Notes Checks whether a specified technology is loaded into the 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.
Provides a method for an automation client or Add-In to 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.
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 590 dialog by selecting a recently opened SQL repository. Parameters: Filename: String - the filename of the Enterprise Architect project to open.
Boolean
As for OpenFile() except this enables the specification of a 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.
Reloads a package or the entire model, updating the user 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.
Refreshes the diagram contents for all diagrams open in 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.
Reloads a specified diagram. This would commonly be used to refresh a visible diagram after code import/export or other batch process where the diagram requires complete refreshing.
1660
Method
Type
Removes a specified tab from the Output window. Parameters: Name: String - the name of the tab to be removed.
Runs a search, displaying the results in Enterprise Architect's Model Search window. Parameters: sQueryName: String - the name of the search to run, for example Simple. sSearchTerm: String - the term to search for. sSearchOptions: String - currently not being used. sSearchData: String - enables you to supply a list of results in the form of XML, which is appended onto the result list in Enterprise Architect. See XML Format 1589 ; this parameter is not mandatory so pass in an empty string to run the search as per normal. Saves all open diagrams. Boolean Saves the Audit Logs contained within a model to a specified file. If StartDateTime and EndDateTime are not null then only log 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.
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.
Shows a help topic as a view. Parameters: Topic: String - specifies the help topic.
Selects a specified object in the Project Browser. 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.
1661
Type
Notes Shows/hides the contents of a specified technology or profile in the Enterprise Architect UML Toolbox. 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 technology's ID in the Technology parameter and set the Profile parameter to a null string. Parameters: Technology: String - the ID of the technology. Profile: String - the ID of the profile. Show: Boolean - if true, show the technology or profile; if false, hide the technology or profile.
String
Enables execution of a SQL select statement against the current repository. Returns an XML formatted string value of the resulting recordset. Parameters: SQL: String - contains the SQL Select statement.
Writes text to a specified tab in the Output window, and associates the text with an ID. See also ClearOutput 1652 , CreateOutputTab 1653 , EnsureOutput Visible 1653 . Parameters: Name: String - specifies the tab on which to display the text. String: String - specifies the text to display. ID: Long - specifies the ID the text is associated with.
18.7.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 Name Notes ObjectType Roles Type String String ObjectType
1646
Notes Read/Write. Author name. Read/Write. Notes about the author. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Roles the author might play in this project.
String
1662
Author Methods
Method GetLastError () Type String Notes 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.
18.7.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 EMail Fax Mobile Name Notes ObjectType Organization Phone1 Phone2 Roles Type String String String String String ObjectType
1646
Notes Read/Write. EMail address. Read/Write. Fax number. Read/Write. Mobile phone if available. Read/Write. Client name. Read/Write. Notes about client. Read only. Distinguishes objects referenced through the Dispatch interface. Read/Write. Associated organization. Read/Write. Main phone number. Read/Write. Second phone number. Read/Write. Roles this client might play in the project.
Client Methods
Method Type Notes 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.
GetLastError () String
1663
18.7.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 Count ObjectType Type Short ObjectType
1646
Notes Read only. The number of objects referenced by this list. Read only. Distinguishes objects referenced through a Dispatch interface.
Collection Methods
Method AddNew (string Name, string Type) Type Object Notes Adds a new item to the current collection. Note that the interface is the same for all collections; you must provide a Name and Type argument. What these are used for depends on the actual collection member. Also note that you must call Update() on the returned object to complete the AddNew. If Update() is not called the object is left in an indeterminate state. Parameters: Name: String Type: String (up to 30 characters long) Delete (short index) Void Deletes the item at the selected reference. Parameters: index: Short DeleteAt (short index, boolean Refresh) Void Deletes the item at the selected index. The second parameter is currently unused. Parameters: index: Short Refresh: Boolean GetAt (short index) Object Retrieves the array object using a numerical index. If the index is out of bounds, an error occurs. Parameters: index: Short GetByName (string Name) Object Gets an item in the current collection by Name. If the collection does not contain any items, the method returns a null value. If the collection contains items, but it was unable to find
1664
Method
Type
Notes an object with the specified name, the method raises an exception. Only supported for the following collections: Models, Packages Elements 1678 , Diagrams 1711 , and element TaggedValues 1689 . Parameters: Name: String
1666
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 ()
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.
18.7.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 DatatypeID DefaultLen DefaultPrec DefaultScale GenericType HasLength MaxLen MaxPrec MaxScale Name ObjectType Product Size Type Type Long Long Long Long String String Long Long Long String ObjectType
1646
Notes Read/Write. Instance ID for this datatype within the current model. System maintained. Read/Write. Default length (DDL only). Read/Write. Default precision (DDL only). Read/Write. Default scale (DDL only). Read/Write. The associated generic type for this data type. Read/Write. Indicates datatype has a length component. Read/Write. Maximum length (DDL only). Read/Write. Maximum precision (DDL only). Read/Write. Maximum scale (DDL only). Read/Write. The datatype name (such as integer). This appears in the related drop-down datatype lists where appropriate. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The datatype product, such as Java, C++, Oracle. Read/Write. The datatype size. Read/Write. The type can be DDL for database datatype or Code for language datatypes.
1665
Attribute UserDefined
Type Long
Notes Read/Write. Indicates if datatype is a user defined type or system generated. Datatypes distributed with Enterprise Architect are all system generated. Datatypes created in the Datatype dialog are marked 1 (true).
Datatype Methods
Method GetLastError () Type String Notes 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.
18.7.2.4.6 EventProperties
An EventProperties object is passed to BroadcastFunctions to facilitate parameter passing.
EventProperties Attributes
Attribute Count ObjectType Type Long ObjectType
1646
Notes Read only. Number of parameters being passed to this broadcast event. Read only. Distinguishes objects referenced through a Dispatch interface.
EventProperties Methods
Method Get (object Index) Type EventProperty
1665
Notes Read only. Returns an EventProperty in the list, raising an error if Index 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").
18.7.2.4.7 EventProperty
EventProperty objects are always part of an EventProperties responding to broadcast events 1594 .
1665
EventProperty Attributes
Attribute Description Name ObjectType Type String String ObjectType Notes Explanation of what this property represents. A string distinguishing this property from others in the list. Distinguishes objects referenced through a Dispatch interface.
1666
Attribute
Type
1646
Notes
Value
Variant
18.7.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 the model, or load another model, the created ModelWatcher is still valid.
ModelWatcher Attributes
Attribute ObjectType Type ObjectType
1646
ModelWatcher Methods
Methods GetReloadItem (object Item) Type ReloadType
1647
Notes The object that must be reloaded in order to see all changes is returned 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
1647
This method behaves identically to GetReloadItem() but does not clear the change record.
18.7.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 collection (a Model is a special form of Package) or through the Package Packages 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
1667
Package Attributes
Attribute Alias BatchLoad Type String Long Notes Read only. Alias. Read/Write. Flag to indicate that the package is batch loaded during batch import from controlled packages. Not currently used. Read/Write. Boolean value to indicate whether the package is included in the batch XMI export list or not. Read/Write. The path to where associated source code is found. Not currently used.
1663
Read only. Collection of connectors. Read/Write. Date the package was created. Read only. A collection of diagrams contained in this package. Read only. The associated element object. Use to get/set common information such as Stereotype, Complexity, Alias, Author, Constraints, Tagged Values and Scenarios. Read only. A collection of elements that belong to this package. Read/Write. Extended information about the package. Read/Write. Indicates if the package has been marked as Controlled. Read only. Indicates if the package is a model or a package. Read/Write. True is 'package is a Namespace root'. Use 0 and 1 to set False and True. Read/Write. Indicates if the package has been marked as Protected. Read. Indicates whether or not this package is under version control. Read/Write. The date XML was last loaded for the package. Read/Write. The date XML was last saved from the package. Read/Write. Indicates if XMI export information is to be logged. Read/Write. Date the package was last modified. Read/Write. The name of the package. Read/Write. Notes about this package. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The package owner when using controlled packages. Read only. The global Package ID. Valid across models.
1678
1663
IsProtected IsVersionControlled LastLoadDate LastSaveDate LogXML Modified Name Notes ObjectType Owner PackageGUID
String Variant
1668
Notes Read only. The local Package ID number. Valid only in this model file.
1663
Read only. A collection of contained packages that can be walked through. 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). Read/Write. The relative position in the tree compared to other packages (use to sort packages). Read/Write. The UML version for XMI export purposes. Read/Write. Indicates if a DTD is to be used when exporting XMI. Read/Write. The version of the package. Read/Write. The path to where the XML is saved when using controlled packages.
Package Methods
Method ApplyGroupLock (string aGroupName) Type Boolean Notes Applies a group lock to the package object, for the specified 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. FindObject (string DottedID) LPDISPATCH Returns a package, element, attribute or operation matching the parameter DottedID. If the DottedID is not found, an error is returned: Can't find matching object. Parameter: DottedID: String - Is in the form object.object.object where object is replaced by the name of a package, element attribute or operation. Examples include MyNamespace.Class1, CStudent.m_Name, MathClass. DoubleIt(int). 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 Removes an existing User or Group lock from the package object.
1998-2009 Sparx Systems Pty Ltd
1669
Method
Type
Notes Throws an exception if the operation fails. Use GetLastError( ) to retrieve error information.
Update ()
Boolean
Update the current package object after modification or appending a new item. If false is returned, check the GetLastError function for more information. Note that a package object also has an element component that must be taken into account. The package object contains information about the package attributes such as hierarchy or contents. The element attribute contains information about, for example, Stereotype, Constraints or Files - all the attributes of a typical element.
Void
Places the package under version control, using the specified Version Control Configuration and the specified XMI filename. Throws an exception if the operation fails. Use GetLastError( ) to retrieve error information. 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.
Void
Perform checkin of the version controlled package. 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).
Void
Perform checkout of the version controlled package. 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).
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,
1670
Method
Type
Notes 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.
VersionControlRemove ()
Void
Removes version control from the package. Throws an exception if the operation fails. Use GetLastError( ) to retrieve error information.
18.7.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 Category Date DateResolved Name IssueID Notes ObjectType Owner Priority Resolution Type String Date Date String Long String ObjectType
1646
Notes Read/Write. The category this issue belongs to. Read/Write. Date created. Read/Write. Date issue resolved. Read/Write. Issue name (that is, the issue itself). Read only. The ID of this issue. Read/Write. Associated description of issue. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Owner of issue. Read/Write. Issue priority. Generally should use Low, Medium or High. Read/Write. Description of resolution.
1998-2009 Sparx Systems Pty Ltd
1671
Notes Read/Write. Person resolving issue. Read/Write. Issue severity. Should be marked as Low, Medium or High. Read/Write. Current issue status.
ProjectIssues Methods
Method GetLastError () Type String Notes 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.
18.7.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 Email Fax Mobile Name Notes ObjectType Organization Phone1 Phone2 Roles Type String String Variant String String ObjectType Package String Variant Variant String
1646
Notes Email address. Fax number. Mobile number if available. Name of resource. A description if appropriate. Read only. Distinguishes objects referenced through a Dispatch interface. Organization resource associated with. Main phone. Alternative phone. The roles this resource can play in the current project.
1666
ProjectResource Methods
Method GetLastError () Type String Notes Returns a string value describing the most recent error that occurred in relation to this object.
1672
Method
Type
Notes 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.
18.7.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 Description Detail ObjectType Tag Type String String ObjectType String
1646
Notes Read/Write. Short description for the property. Read/Write. Configuration information for the property. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Name of the property (Tag Name).
Author Methods
Method GetLastError () Type String Notes 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.
18.7.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
1998-2009 Sparx Systems Pty Ltd
1673
Reference Attributes
Attribute Count ObjectType Type Type Short ObjectType
1646
Notes Count of items in the list. Read only. Distinguishes objects referenced through a Dispatch interface. The list type (for example, Diagram Types).
String
Reference Methods
Method GetAt (short Index) Type String Notes Get the item at the specified index. 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.
18.7.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 AppliesTo MetafileLoadPat h Notes Name ObjectType StereotypeGUID Type String String Notes Read/Write. A reference to the stereotype Base Class, that is, which element it applies to. Read/Write. Path to an associated metafile. The automation interface does not yet support loading metafiles. To do this you must use the Stereotype tab of the UML Types dialog in Enterprise Architect. Read/Write. Notes about the stereotype. Read/Write. The stereotype name. Appears in the Stereotype drop list for elements that match the AppliesTo attribute. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Unique identifier for stereotype, generally set and maintained by Enterprise Architect.
String
1674
Notes Read/Write. Additional style specifier for stereotype. Read/Write. Indicates an inbuilt visual style associated with a stereotype. Not currently implemented.
Stereotype Methods
Method GetLastError () Type String Notes 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.
18.7.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 ActualTime AssignedTo EndDate History Name Notes ObjectType Owner Percent Phase Priority StartDate Status TaskID TotalTime Type Long String Date String Variant Variant ObjectType
1646
Notes Read/Write. Time already expended on task, in hours, days or other units. Read/Write. Person this task is assigned to; that is, the responsible resource. Read/Write. Date task scheduled to finish. Read/Write. Memo field to hold, for example, task history or notes. Read/Write. Task name. Read/Write. Description of the task. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The task owner. Read/Write. Percent the task is complete. Read/Write. The phase of the project the task relates to. Read/Write. Priority associated with this task. Read/Write. Date task is to start. Read/Write. Current task status. Read only. Local ID of task. Read/Write. The total expected time the task might run - in hours, days or
1675
Attribute
Type
Type
String
Task Methods
Method GetLastError () Type String Notes 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.
18.7.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 Meaning ObjectType Term TermID Type Type String ObjectType
1646
Notes Read/Write. The description of the term; its meaning. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The glossary item name. Read only. A local ID number to identify the term in the model. Read/Write. The type this term applies to (for example, business or technical).
Term Methods
Method GetLastError () Type String Notes 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.
1676
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).
1677
18.7.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 Name Notes ObjectType ParentID Status Type Weight Type String String ObjectType
1646
Notes Read/Write. The name of the constraint (that is, the constraint). Read/Write. Notes about the constraint. Read only. Distinguishes objects referenced through a Dispatch interface. Read only. The ElementID of the element to which this constraint applies. Read/Write. Current status. Read/Write. Constraint type. Read/Write. A weighting factor.
Constraint Methods
Method GetLastError () Type String Notes 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.
18.7.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 Name Notes ObjectType Type Type String String ObjectType
1646
Notes Read/Write. The name of the effort. Read/Write. Notes about the effort. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The effort type.
String
1678
Effort Methods
Method GetLastError () Type String Notes 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 Saves the effort to the model.
18.7.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 Abstract Type String Notes Read/Write. Indicates if the element is Abstract (1) or Concrete (0). Read/Write. A structure to hold flags concerned with Action semantics. Read/Write. An optional alias for this element.
1663
Read only. Collection of Attribute objects for current element. Use the AddNew and Delete functions to manage attributes. Read only. Collection of Attribute objects belonging to the current element and its parent elements. Read/Write. The element author (see the Repository: Authors 1648 list for more details).
1663
1663
Read only. List of Base Classes for this element presented as a collection for convenience. Deprecated. See ClassifierID. Read/Write. ElementID of a Classifier associated with this element; that is, the base type. Only valid for instance type elements (such as Object, Sequence). Read/Write. Name of associated Classifier (if any).
1998-2009 Sparx Systems Pty Ltd
ClassifierName
String
1679
Notes Read only. Type of associated classifier. Read/Write. A complexity value indicating how difficult the element is. Can be used for metric reporting and estimation. Valid values are: 1 for Easy, 2 for Medium, 3 for Difficult.
Diagram
1711
Read only. If the element is Composite, returns its associated diagram; otherwise returns null. Read only. Returns a collection containing the connectors to other elements. Read only. Collection of Constraint
1677
1663
1663
objects.
1663
Read only. Collection of Constraint objects belonging to the current element and its parent elements. Read/Write. The date the element was created.
1663
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. Read only. Returns a collection of sub-diagrams (child diagrams) attached to this element as seen in the tree view. 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.
Diagrams Difficulty
Collection String
1663
Efforts ElementGUID
Collection String
1663
1677
objects.
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. Read only. The local ID of the Element. Valid for this file only.
1663
Read only. Returns a collection of child elements (subelements) attached to this element as seen in the tree view. Read only. List of elements that are embedded into this element, such as Ports, Parts, Pins and Parameter Sets. Read/Write. A structure to hold a variety of flags to do with signals or events. Read/Write. Optional extension points for a Use Case as a comma-separated list.
1663
1663
1684
objects.
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. Read/Write. Links to other Classes discovered at code reversing time; Parents and Implements connectors only.
Genlinks
String
1680
Notes Read/Write. The code generation type; for example, Java, C++, C#, VBNet, Visual Basic, Delphi. Read/Write. A user defined string for inclusion as header in the source files generated. Read/Write. Same as for Header1, but used in the CPP source file. Read/Write. Boolean value indicating whether the element is active or not. 1 = True, 0 = False.
IsLeaf
Boolean
Read/Write. Boolean value indicating whether the element is in leaf node or not. 1 = True, 0 = False.
IsNew
Boolean
Read/Write. Boolean value indicating whether the element is new or not. 1 = True, 0 = False.
IsSpec
Boolean
Read/Write. Boolean value indicating whether the element is a specification or not. 1 = True, 0 = False.
1663
Read only. Collection of Issue objects. Read/Write. Indicates if the element has been locked against further change. Read only. The element's domain-specific meta type, as defined by an applied stereotype from an MDG Technology.
1663
Read only. Collection of Method objects for current element. Read only. Collection of Method objects belonging to the current element and its parent elements. Read only. Collection of Metric elements for current element. 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.
1663
1663
Read/Write. The date the element was last modified. Read/Write. Multiplicity value for this element. Read/Write. The element name; should be unique within the current package. Read/Write. Further descriptive text about the element. Read only. Distinguishes objects referenced through a Dispatch interface.
1998-2009 Sparx Systems Pty Ltd
1681
Notes Read/Write. A local ID for the package containing this element. Read/Write. If this element is a child of another, used to set or retrieve the ElementID of the other element. If not, returns 0.
1663
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. Read/Write. The persistence associated with this element. Can be Persistent or Transient. Read/Write. Phase this element scheduled to be constructed in. Any string value. Read/Write. The priority of this element as compared to other project elements. Only applies to Requirement, Change and Issue types, otherwise ignored. Valid values are: Low, Medium and High.
Properties
Properties
1701
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. Read/Write. The ElementID of a Type associated with this element. Only valid for Port and Part elements.
PropertyType Realizes Requirements RequirementsEx Resources Risks RunState Scenarios StateTransitions Status
Long Collection Collection Collection Collection Collection String Collection Collection String
1663
1663
Read only. List of Interfaces realized by this element for convenience. Read only. Collection of Requirement
1686
1663
objects.
1663
Read only. Collection of Requirement 1686 objects belonging to the current element and its parent elements. Read only. Collection of Resource element. Read only. Collection of Risk
1688 1687
1663
1663
objects.
Read/Write. The object's runstate list as a string. Read only. Collection of Scenario element.
1689
1663
Read only. List of State Transitions that an element can support. Applies in particular to Timing elements. Read/Write. Sets or gets the status, such as Proposed or Approved. Read/Write. The primary element stereotype. This is the first of the list of stereotypes you can access using the StereotypeEx attribute. Read/Write. All the applied stereotypes of the element in a comma-separated list. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read/Write. A numeric subtype that qualifies the Type
1682
Stereotype
String
of
1682
Attribute
Type
Notes the main element. For example: For Event: 0 = Receiver, 1 = Sender For Class: 1 = Parameterised, 2 = Instantiated, 3 = Both, 0 = Neither, 17 = Association Class 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. For Note: 1 = Note linked to connector, 2 = Constraint linked to connector For StateNode: 100 = ActivityIntitial, 101 = ActivityFinal For Activity: 0 = Activity, 8 = composite Activity (also set to 8 for other composite elements such as Use Cases) For Synchronization: 0 = Horizontal, 1 = Vertical. Note that there are many more Types than indicated in the above examples.
Tablespace Tag
String String
Read/Write. Associated tablespace for a Table element. Read/Write. Corresponds to the Keywords field in the Enterprise Architect user interface. See the General Settings 380 topic. Read only. Returns a collection of TaggedValue
1689
TaggedValues
objects.
TaggedValuesEx
Read only. Returns a collection of TaggedValue 1689 objects belonging to the current element and the elements specialized or realized by the current element. Read only. Collection of Test
1690
1663
Read/Write. Sets or gets the tree position. Read/Write. The element type (such as Class, Component). Note that Type is case sensitive inside Enterprise Architect and should be provided with an initial capital (proper case). Valid types are: Action Activity ActivityPartition ActivityRegion Actor Artifact Association Boundary Change Class Collaboration Component Constraint Decision DeploymentSpecification InteractionOccurrence InteractionState Interface InterruptibleActivityRegion Issue Node Note Object Package Parameter Part Port ProvidedInterface Report RequiredInterface
1998-2009 Sparx Systems Pty Ltd
1683
Attribute
Type
Notes DiagramFrame EmbeddedElement Entity EntryPoint Event ExceptionHandler ExitPoint ExpansionNode ExpansionRegion GUIElement InteractionFragment Requirement Screen Sequence State StateNode Synchronization Text TimeLine UMLDiagram UseCase
Version Visibility
String String
Read/Write. The version of the element. Read/Write. The Scope of this element within the current package. Valid values are: Public, Private, Protected or Package.
Element Methods
Method ApplyGroupLock (string aGroupName) Type Boolean Notes Applies a group lock to the element object, for the specified 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. GetLinkedDocument () String Returns a string value containing the element's linked document contents, in RTF format. If the element contains no linked document, an empty string is returned. GetRelationSet (EnumRelationSetType Type) String Returns a string containing a comma-separated list of ElementIDs of directly- and indirectly-related elements based on the given type. See EnumRelationSetType 1645 . Recurses using the same relation type on all elements it finds, retrieving all dependencies and sub-dependencies of the current element; for example, Object1 depends on Object2, which depends on Object3. Therefore this method returns Object2 and Object3. To obtain only the direct relationships of the element, use the Connector 1703 collection instead. GetStereotypeList () String Returns a comma-separated list of stereotypes allied to this element.
1684
Type Boolean
Notes Loads the RTF document from the specified file into the 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. Releases a user lock or group lock on the element object. Throws an exception if the operation fails. Use GetLastError() to retrieve error information.
ReleaseUserLock ()
Boolean
Boolean
Saves the linked document for this element to the specified RTF file. Parameter: FileName: String - the name of the RTF file to which to save the linked document.
Void
Sets the visual appearance of the element. Parameter: Scope: Long - Scope of appearance set to modify 0 Local (Diagram-local appearance) 1 Base (Default appearance across entire model) Item: Long - Appearance item 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.
18.7.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 FileDate Name Notes Type String String String Notes Read/Write. The file date when entry is created. Read/Write. The file name can be a logical file or a reference to a web address (using http://). Read/Write. Notes about the file.
1685
Type ObjectType
1646
Notes Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The file size. Read/Write. File type.
String String
File Methods
Method GetLastError () Type String Notes 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 DateReported DateResolved ElementID Name Notes ObjectType Priority Reporter Resolver ResolverNotes Severity Status Type Version Type Date Date Long String String ObjectType
1646
Notes Read/Write. Date issue reported. Read/Write. Date issue resolved. Read/Write. ID of element associated with this issue. Read/Write. The Issue name; that is, the Issue itself. Read/Write. Issue description. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Issue priority. Generally should use Low, Medium and High. Read/Write. Person reporting issue. Read/Write. Person resolving issue. Read/Write. Notes entered by resolver about resolution. Read/Write. Issue severity. Should be marked as Low, Medium or High. Read/Write. The current status of the issue. Read/Write. Issue type - can be Defect or Change, Issue and ToDo. Read/Write. Version associated with issue. Note that this method is only available through a Dispatch interface. For example:
Object ob = Issue; Print ob.Version;
1686
Issue Methods
Method GetLastError () Type String Notes 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.
18.7.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 Name Notes ObjectType Type Weight Type String String ObjectType
1646
Notes Read/Write. The name of the metric. Read/Write. Notes about this metric. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The metric type. Read/Write. A user defined weighting for estimation or metric purposes.
String Long
Metric Methods
Method GetLastError () Type String Notes 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.
18.7.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
1687
Requirement Attributes
Attribute Difficulty LastUpdate Name Notes ObjectType ParentID Priority RequirementID Stability Type String Date String String ObjectType
1646
Notes Read/Write. Estimated difficulty to implement. Read/Write. Date requirement last updated. Read/Write. The requirement itself. Read/Write. Further notes about requirement. Read only. Distinguishes objects referenced through a Dispatch interface. Read only. The ElementID of the element to which this requirement applies. Read/Write. Assigned priority of the requirement. Read only. A local ID for this requirement. Read/Write. Estimated stability of the requirement. This is an indication of the probability of the requirement - or understanding of the requirement - changing. High stability indicates a low probability of the requirement changing.
Status Type
String String
Requirement Methods
Method GetLastError () Type String Notes 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.
18.7.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 ActualHours DateEnd Type Long Date Notes Read/Write. Time already expended on the task, in hours, days or other units. Read/Write. Expected end date.
1688
Attribute DateStart ExpectedHours History Name Notes ObjectType PercentComplete Role Time
Notes Read/Write. Date to start work. Read/Write. The total expected time the task might run, in hours, days or other units. Read/Write. Gets or sets history text. Read/Write. Name of resource (for example, person's name). Read/Write. Descriptive notes. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Current percent complete figure. Read/Write. Role they play in implementing the element. Read/Write. Time expected; numeric indicating number of days.
Resource Methods
Method GetLastError () Type String Notes 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.
18.7.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 Name Notes ObjectType Type Weight Type String String ObjectType
1646
Notes Read/Write. The risk. Read/Write. Further notes describing the risk. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The risk type associated with this element. Read/Write. A weighting for estimation or metric purposes.
String Long
1689
Risk Methods
Method GetLastError () Type String Notes 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.
18.7.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 Name Notes ObjectType ScenarioGUID Type Weight XMLContent Type String String ObjectType
1646
Notes Read/Write. The Scenario name. Read/Write. Description of the Scenario. Usually contains the steps to execute the scenario. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A unique ID for the scenario. Used to identify the scenario unambiguously within a model. Read/Write. The Scenario type (for example, Basic Path). Read/Write. Currently used to position scenarios in the scenario list (that is, List Position). Read/Write. A structured field that can contain scenario details in XML format. Not currently used.
Scenario Methods
Method GetLastError () Type String Notes 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.
18.7.2.5.11 TaggedValue
public Class
A TaggedValue is a named property and value associated with an element and is accessed through the TaggedValues collection.
1690
TaggedValue Attributes
Attribute ElementID Name Notes ObjectType PropertyGUID PropertyID Value Type Long String String ObjectType
1646
Notes Read/Write. The local ID of the associated element. Read/Write. Name of the property (Tag). Read/Write. Further descriptive notes. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A global ID for the property. Read only. A local ID for the property. Read/Write. The value assigned in this instance.
TaggedValue Methods
Method GetLastError() Type String Notes 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.
18.7.2.5.12 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 Read/Write. The acceptance criteria for successful execution. Read/Write. Results confirmed by. Read/Write. The test Class: 1 = Unit Test 2 = Integration Test 3 = System Test 4 = Acceptance Test 5 = Scenario Test. DateRun Input Name Date String String Read/Write. Date last run. Read/Write. Input data. Read/Write. The test name.
1691
Notes Read/Write. Detailed notes about test to be carried out. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Person conducting test. Read/Write. Current status of test. Read/Write. Results of test. Read/Write. The test type, such as Load or Regression.
Test Methods
Method GetLastError () Type String Notes 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.
1692
18.7.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 AllowDuplicate s Type Boolean Notes Read/Write. Indicates if duplicates are allowed in the collection. If the attribute represents a database column, this when set represents the Not Null option.
1693
Notes Read/Write. A globally unique ID for the current attribute. System generated. Read only. Local ID number of the attribute. Read/Write. Classifier ID, if appropriate; indicates the base type associated with attribute, if not a primitive type. Read/Write. The container type. Read/Write. Type of containment. Can be Not Specified, By Reference or By Value. Read only. A collection of AttributeConstraint objects. Used to access and manage constraints associated with this attribute. Read/Write. Initial value assigned to this attribute. 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. Read/Write. Flag indicating if the attribute is Const or not. Read/Write. Indicates if the attribute is derived (that is, a calculated value). Read/Write. Indicates if a collection is ordered or not. If the attribute represents a database column, this when set represents a Primary Key. 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. Read/Write. The attribute length, where applicable. Read/Write. A value for the collection lower bound. Read/Write. The attribute name. Read/Write. Further notes about this attribute. Read only. Distinguishes objects referenced through a Dispatch interface. Read only. Returns the ElementID of the element that this attribute is a part of. Read/Write. Position of the attribute in the Class attribute list. Read/Write. Precision value. Read/Write. Scale value. Read/Write. Sets or gets the stereotype for this attribute. Read/Write. All the applied stereotypes of the attribute in a commaseparated list. Read/Write. Contains the Alias property for this attribute. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read only. A collection of AttributeTag objects. Use to access and manage Tagged Values associated with this attribute.
Collection
1663
String Boolean
Length LowerBound Name Notes ObjectType ParentID Pos Precision Scale Stereotype StereotypeEx Style StyleEx TaggedValues
Long Long String String String String String String Collection 1663 of type
1694
Attribute
Type AttributeTag
1695
Notes
TaggedValuesE Collection 1663 of type x TaggedValu e 1689 Type UpperBound Visibility String String String
Read only. Collection of TaggedValue objects belonging to the current attribute and the TaggedValuesEx property of its classifier.
Read/Write. The attribute type (by name; also see ClassifierID). Read/Write. A value for the collection upper bound. Read/Write. The scope of the attribute. Can be Private, Protected, Public or Package.
Attribute Methods
Method GetLastError () Type String Notes 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.
18.7.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 AttributeID Name Notes ObjectType Type Type Long String String ObjectType String
1646
Notes Read/Write. ID of the attribute this constraint applies to. Read/Write. The constraint. Read/Write. Descriptive notes about constraint. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Type of constraint.
AttributeConstraint Methods
Method GetLastError () Type String Notes 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.
1695
Method Update ()
Type Boolean
Notes Update the current AttributeConstraint object after modification or appending a new item. If false is returned, check the GetLastError function for more information.
18.7.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 AttributeID Name Notes ObjectType TagGUID TagID Value Type Long String String ObjectType
1646
Notes Read/Write. Local ID of attribute associated with this Tagged Value. Read/Write. Name of tag. Read/Write. Descriptive notes. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A globally unique ID for this Tagged Value. Read only. Local ID to identify Tagged Value. Read/Write. Value associated with this tag.
AttributeTag Methods
Method GetLastError () Type String Notes 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.
18.7.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.
1696
CustomProperty
Attribute Name ObjectType Value Type String ObjectType
1646
Notes Read only. The CustomProperty name. Read only. Distinguishes objects referenced through a Dispatch interface. 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.1.1 specification in general provides information on enumeration kinds relevant here.
String
18.7.2.6.5 EmbeddedElements
public Collection
In UML 2.1 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.
18.7.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
1697
Method Attributes
Attribute Abstract Behavior Type Boolean String Notes Read/Write. Flag indicating if the method is abstract (1) or not (0). 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. ClassifierID Code String String Read/Write. Classifier ID that applies to the ReturnType. Read/Write. Optional field to hold the method Code (used for the Initial Code field). Read/Write. Concurrency type of method. Read/Write. Flag indicating the method is Const. Read/Write. Flag to indicate if the method is Leaf (cannot be overridden). Read/Write. Flag indicating the method is defined as Pure in C++. Read/Write. Flag to indicate if the method is a query (that is, does not alter Class variables). Read/Write. Flag to indicate if the method is Root. Read/Write. Flag to indicate a static method. Read/Write. Flag indicating a Synchronized method call. Read/Write. A globally unique ID for the current method. System generated. Read only. A local ID for the current method, only valid within this .EAP file. Read/Write. The method name. Read/Write. Descriptive notes about the method. Read only. Distinguishes objects referenced through a Dispatch interface. Read only. The Parameters collection for the current method. Use to add and access parameter objects for the current method. Read only. An optional ID of an element that 'owns' this diagram; e.g. a Sequence diagram owned by a Use Case. Read/Write. Specifies the position of the method within the set of operations defined for a Class.
1663
Concurrency IsConst IsLeaf IsPure IsQuery IsRoot IsStatic IsSynchronized MethodGUID MethodID Name Notes ObjectType Parameters ParentID Pos
Variant Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Long String String ObjectType
1646
1663
Read only. PostConditions (constraints) as they apply to this method. Returns a MethodConstraint object of type post. Read only. PreConditions (constraints) as they apply to this method. Returns a MethodConstraint object of type pre. Read/Write. Flag to indicate the return value is an array.
1663
1698
Type String String String String String String Collection 1663 of type MethodTag
1699
Notes Read/Write. Return type for the method; can be a primitive data type or a Class or Interface type. Read/Write. Some flags as applied to methods in State elements. Read/Write. The method stereotype (optional). Read/Write. All the applied stereotypes of the method in a commaseparated list. Read/Write. Contains the Alias property for this method. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read only. TaggedValues collection for the current method. Accesses a list of MethodTag objects.
Throws Visibility
String String
Read/Write. Exception information. Read/Write. The method scope: Public, Protected, Private or Package.
Method Methods
Method GetLastError () Type String Notes 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.
18.7.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 MethodID Name Notes ObjectType Type Type Long String String ObjectType
1646
Notes Read/Write. The local ID of the associated method. Read/Write. The name of the constraint. Read/Write. Descriptive notes about this constraint. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The constraint type.
String
1699
MethodConstraint Methods
Method GetLastError () Type String Notes 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 MethodConstraint object after modification or appending a new item. If false is returned, check the GetLastError function for more information.
18.7.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 MethodID Name Notes ObjectType TagGUID TagID Value Type Long String String ObjectType
1646
Notes Read/Write. The ID of the associated method. Read/Write. The tag or name of the property. Read/Write. Descriptive notes about this item. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A unique GUID for this Tagged Value. Read only. A unique ID for this Tagged Value. Read/Write. A value to apply to this tag.
MethodTag Methods
Method Type Notes 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.
GetLastError () String
18.7.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
1700
Parameter Attributes
Attribute Alias ClassifierID Default IsConst Kind Name Notes ObjectType OperationID ParameterGUI D Position Stereotype StereotypeEx Style StyleEx Type Type String String String Boolean String String String ObjectType
1646
Notes Read/Write. An optional alias for this parameter. Read/Write. A ClassifierID for the parameter, if known. Read/Write. A default value for this parameter. Read/Write. Flag indicating the parameter is Const (cannot be altered). Read/Write. The parameter kind - in, inout, out, return. Read/Write. The parameter name; must be unique for a single method. Read/Write. Descriptive notes. Read only. Distinguishes objects referenced through a Dispatch interface. Read only. ID of the method associated with this parameter. Read/Write. A globally unique ID for the current Parameter. System generated. Read/Write. The position in the argument list. Read/Write. The first stereotype of the parameter. Read/Write. All the applied stereotypes of the parameter in a commaseparated list. Read/Write. Some style information. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read/Write. The parameter type; can be a primitive type or defined classifier.
Long String
Parameter Methods
Method GetLastError () Type String Notes 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.
18.7.2.6.10 Partitions
public Collection
A collection of internal element partitions (regions). This is commonly seen in Activity 1398 , Diagram Frame 1338 and similar elements. Not all elements support partitions.
1324
, State
1361
, Boundary
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.
1701
Partition Attributes
Attribute Name Note ObjectType Operator Size Type String String ObjectType
1646
Notes Read/Write. The partition name; can represent a condition or constraint in some cases. Read/Write. A free text note associated with this partition. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. An optional operator value that specifies the partition type. Read/Write. Vertical or horizontal width of partition in pixels.
String String
18.7.2.6.11 Properties
Properties
Properties Attributes
Attribute Count ObjectType Type Long ObjectType
1646
Notes The number of properties that are available for this object. Read only. Distinguishes objects referenced through a Dispatch interface.
Properties Methods
Method Item (object Index) Type Property Notes 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
Attribute Name Type String Notes 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.
1646
ObjectType Type
ObjectType PropType
Read only. Distinguishes objects referenced through a Dispatch interface. 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. 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
1646
Validation
String
1702
Attribute
Type
Value
Variant
18.7.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 Read/Write. A constraint on the time duration that the transition takes.
DurationConstra String int Event Note ObjectType TimeConstraint TxState TxTime String String ObjectType
1646
Read/Write. Event (optional) that initiated transition. Read/Write. A free text note. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A constraint on when the transition has to be complete by. Read/Write. The state to transition to. Defined in the Timeline Properties dialog. Read/Write. The time that the transition occurs. Value depends on range set in diagram.
1703
18.7.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
1704
ConnectorConstraint Attributes
Attribute ConnectorID Name Notes ObjectType Type Type Long String String Notes Read/Write. A local ID value (long) - system generated. Read/Write. The constraint name. Read/Write. Notes about this constraint.
String
ConnectorConstraint Methods
Method Type Notes 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.
GetLastError String ()
18.7.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 Association Collaboration Dependency Generalization Instantiation Nesting NoteLink Realization Sequence Transition UseCase
Connector Attributes
Attribute Alias ClientEnd ClientID Type String ConnectorEnd
1707
Notes Read/Write. An optional alias for this connector. Read only. A pointer to the ConnectorEnd object representing the source end of the relationship. Read/Write. ElementID of the element at the source end of this
Long
1705
Attribute
Type
Notes connector.
Read/Write. Sets the color of the connector. Read only. A globally unique ID for the current connector. System generated. Read only. Local identifier for the current connector. System generated.
1663
1677
objects.
1663
Read only. Returns a collection of advanced properties associated with an element in the form of CustomProperty 1695 objects. Read/Write. The DiagramID of the connector. 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.
EndPointY
Long
Read/Write. The y-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.
Read/Write. Structure to hold a variety of flags concerned with event signaling on messages. Read/Write. Flag indicating connector is a leaf. Read/Write. Flag indicating connector is a root. Read/Write. Flag indicating connector is a specification. Read only. The connector's domain-specific meta type, as defined by an applied stereotype from an MDG Technology. Read/Write. The connector name. Read/Write. Descriptive notes about the connector. Read only. Distinguishes objects referenced through a Dispatch interface. 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. Read/Write. The route style.
1701
RouteStyle
Long
1706
Notes Read/Write. The SequenceNo of the connector. Read/Write. The x-coordinate of the connector's start point. Note: Connector end points are specified in cartesian coordinates with the origin to the top left of the screen.
StartPointY
Long
Read/Write. The y-coordinate of the connector's start point. Note: Connector end points are specified in cartesian coordinates with the origin to the top left of the screen.
StateFlags Stereotype StereotypeEx StyleEx Subtype SupplierEnd SupplierID TaggedValues TransitionAction TransitionEvent TransitionGuard Type VirtualInheritanc e Width
Read/Write. Structure to hold a variety of flags concerned with State signaling on messages, the list delimited by semi-colons. Read/Write. Sets or gets the stereotype for this connector end. Read/Write. All the applied stereotypes of the connector in a commaseparated list. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read/Write. A possible subtype to refine the meaning of the connector. Read only. A pointer to the ConnectorEnd object representing the target end of the relationship. Read/Write. ElementID of the element at the target end of this connector. Read only. Collection of ConnectorTag objects. Read/Write. See the Transition Guide for appropriate values. Read/Write. See the Transition Guide for appropriate values. Read/Write. See the Transition Guide for appropriate values.
1452
topic in Enterprise Architect User topic in Enterprise Architect User topic in Enterprise Architect User
1452
1452
Read/Write. Connector type. Valid types are held in the t_connectortypes table in the .EAP file. Read/Write. For Generalization, indicates if inheritance is virtual.
Long
Connector Methods
Method GetLastError () Type String Notes 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
1707
Method
Type
Notes occurs.
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 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.
18.7.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 Aggregation Type Long Notes Read/Write. Aggregation as it applies to this end. Valid values are: 0 = None 1 = Shared 2 = Composite. Alias AllowDuplicates Cardinality Constraint Containment Derived DerivedUnion End IsChangeable String Boolean String String String Boolean Boolean String String Read/Write. An optional alias for this connector end. Read/Write. For multiplicities greater than 1, indicates that duplicate entries are possible. Read/Write. Cardinality associated with this end. Read/Write. A constraint that can be applied to this connector end. Read/Write. Containment type applied to this connector end. Read/Write. Indicates that the value of this end is derived. Read/Write. Indicates the value of this role derived from the union of all roles that subset this. Read only. The end this ConnectorEnd object applies to: Client or Supplier. Read/Write. Flag indicating whether this end is changeable or not. Values: frozen, addOnly or none. IsNavigable Navigable Boolean String Read/Write. Flag indicating this end is navigable from the other end. Read/Write. Indicates whether this role of an association is navigable from the opposite classifier. Three values are valid: Navigable, Non-
1708
Attribute
Type
ObjectType Ordering OwnedByClassifie r Qualifier Role RoleNote RoleType Stereotype StereotypeEx TaggedValues Visibility
ObjectType
1646
Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Ordering for this connector end. Read/Write. Indicates this association end corresponds to an attribute on the opposite end of the association. Read/Write. A qualifier that can apply to connector end. Read/Write. The connector end role. Read/Write. Notes associated with the role of this connector end. Read/Write. The role type applied to this end of the connector. Read/Write. Sets or gets the stereotype for this connector end. Read/Write. All the applied stereotypes of the connector end in a comma-separated list. Read only. Collection of RoleTag
1709
Long Boolean
objects.
Read/Write. Scope associated with this connector end. Valid types are: Public, Private, Protected and Package.
ConnectorEnd Methods
Method GetLastError () Type String Notes 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 ConnectorEnd object after modification or appending a new item. If false is returned, check the GetLastError function for more information.
18.7.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 ConnectorID Name Notes ObjectType Type Long String String ObjectType Notes Read/Write. The local ID of the associated connector. Read/Write. The tag or name. Read/Write. Descriptive notes associated with this Tagged Value. Read only. Distinguishes objects referenced through a Dispatch
1709
Attribute
Type
1646
Notes interface. Read/Write. A globally unique ID for this Tagged Value. Read only. A local ID to identify the Tagged Value. Read/Write. A value associated with the tag.
ConnectorTag Methods
Method GetLastError () Type String Notes 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.
18.7.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() tag = client.TaggedValues.AddNew("tag2", "value2") tag.Update() client.TaggedValues.Refresh() For idx = 0 To client.TaggedValues.Count - 1 tag = client.TaggedValues.GetAt(idx) Console.WriteLine(tag.Tag) client.TaggedValues.DeleteAt(idx, False) Next tag = Nothing
RoleTag Attributes
Attribute BaseClass Type String Notes Read/Write. Indicates the role end; set to ASSOCIATION_SOURCE or ASSOCIATION_TARGET. Read/Write. GUID of the connector with which this role tag is associated. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. A system generated GUID to identify the Tagged Value. Read/Write. The actual tag name. Read/Write. The value associated with this tag.
ElementGUID ObjectType
String ObjectType
1646
1710
RoleTag Methods
Method GetLastError () Type String Notes 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.
1711
18.7.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
1712
Sequence Statechart Use Case Note: Use the Analysis type for a Collaboration Diagram. Associated table in .EAP file: t_diagram
Diagram Attributes
Attribute Author CreatedDate cx cy DiagramGUID DiagramID DiagramLinks Type String Date Long Long Variant Long Collection
1663
Notes Read/Write. The author. Read/Write. The date the diagram was created. Read/Write. The X dimension of the diagram (default is 800). Read/Write. The Y dimension of the diagram (default is 1100). Read/Write. A globally unique ID for this diagram. Read only. A local ID for the diagram. Read only. A list of DiagramLink objects, each containing information 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.
DiagramObjects
Collection
1663
Read only. A collection of references to DiagramObjects 1715 . A DiagramObject is an instance of an element in a diagram, and includes size and display characteristics. Read/Write. An extended style attribute. Read/Write. Flag to indicate elements from other packages should be highlighted. Read/Write. Flag indicating whether this diagram is locked or not. Read only. The diagram's domain-specific meta type, as defined by an MDG Technology. Read/Write. The date the diagram was last modified. Read/Write. The diagram name. Read/Write. Set/retrieve notes for this diagram. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Page orientation: P for Portrait or L for Landscape. Read/Write. An ID of the package that this diagram belongs to. Read/Write. An optional ID of an element that 'owns' this diagram; for example, a Sequence diagram owned by a Use Case.
ExtendedStyle HighlightImports IsLocked MetaType ModifiedDate Name Notes ObjectType Orientation PackageID ParentID
1713
Notes Read/Write. The zoom scale (default is 100). Read/Write. The currently selected connector on this diagram. Null if there is no currently selected diagram. Read only. Gets a collection representing the currently selected elements 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. Read/Write. Flag to indicate Diagram Details text should be shown. 1 = Show, 0 = Hide. Read/Write. Flag to indicate package contents should be shown in the current diagram. Read/Write. Flag to show or hide Private features. Read/Write. Flag to show or hide Protected features. Read/Write. Flag to show or hide Public features. Read/Write. Sets or gets the stereotype for this diagram. Read/Write. Advanced style settings. Reserved for the use of Sparx Systems. Read/Write. Information on swimlanes contained in the diagram. Please note that this property is superseded by SwimlaneDef 1716 .
Collection
1663
ShowDetails
Long
ShowPackageConten Boolean ts ShowPrivate ShowProtected ShowPublic Stereotype StyleEx Swimlanes SwimlaneDef Type Version Boolean Boolean Boolean String String String
String String
Read only. The diagram type. See the t_diagramtypes table in the . EAP file for more information. Read/Write. The version of the diagram.
Diagram Methods
Method ApplyGroupLock (string aGroupName) Type Boolean Notes Applies a group lock to this diagram object, for the specified 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 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.
1714
Method
Type
Notes 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. Toggles the diagram display between diagram format and Element List depending on the value of ShowAsList. If Persist is set, the display format is written to the database so the 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.
18.7.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 1712 collection. Associated table in .EAP file: t_diagramlinks
DiagramLinks Attributes
Attribute ConnectorID DiagramID Geometry InstanceID IsHidden ObjectType Path Style Type Long Long String Long Boolean ObjectType
1646
Notes Read/Write. The ID of the associated connector. Read/Write. The local ID for the associated diagram. Read/Write. The geometry associated with the current connector in this diagram. Read only. Holds the connector identifier for the current model. Read/Write. Flag to indicate if this item is hidden or not. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The path of the connector in this diagram. Read/Write. Additional style information; for example, color, thickness.
String String
DiagramLinks Methods
Method GetLastError () Type String Notes Returns a string value describing the most recent error that occurred in relation to this object.
1715
Method
Type
Notes 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. If false is returned, check the GetLastError function for more information.
18.7.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 Bottom DiagramID ElementID InstanceID Left ObjectType Right Sequence Type Long Long Long Long Long ObjectType
1646
Notes Read/Write. The bottom position of the element. Read/Write. The ID of the associated diagram (long). Read/Write. The ElementID of the object instance in this diagram. Read/Write. Read only attribute. Holds the connector identifier for the current model. Read/Write. The left position of the element. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. The right position of the element. 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. Write only (reading this value gives undefined results). Style information for this object. See Setting the Style
1716
Long Long
Style
Variant
Top
Long
DiagramObjects Methods
Method GetLastError () Type String Notes 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.
1716
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
18.7.2.8.4 SwimlaneDef
A SwimlaneDef object makes available attributes relating to a single row or column in a list of swimlanes. Attribute Bold FontColor HideClassifier HideNames LineColor LineWidth Locked ObjectType Orientation ShowInTitleBar Swimlanes Type Boolean Long Boolean Boolean Long Long Boolean ObjectType
1646
Notes Read/Write. Show the title text in bold. Read/Write. RGB color used to draw the titles. Read/Write. Removes any classifier from title display. Read/Write. Set to true to hide the swimlane titles. Read/Write. RGB color used to draw swimlane borders. Read/Write. Width of line, in pixels, used to draw swimlanes. Valid values: 1, 2 or 3. Read/Write. If set to true, disables user modification of the swimlanes via the diagram. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Indication of whether the swimlanes are vertical or horizontal. Read/Write. Enables vertical swimlane titles to be shown in title bar. Read/Write. A list of individual swimlanes.
1717
18.7.2.8.5 Swimlanes
A Swimlanes object is attached to a diagram's SwimlaneDef individual swimlanes.
1716
Swimlanes Attributes
Attribute Count ObjectType
1646
Notes Read/Write. Gives the number of swimlanes. Read only. Distinguishes objects referenced through a Dispatch interface.
Swimlanes Methods
Method Add (string Title, long Width) Type Swimlane
1717
Notes Adds a new swimlane to the end of the list. Returns a swimlane object 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.
Void
Deletes a selected swimlane. 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.
Void Swimlane
1717
Removes all swimlanes. Inserts a swimlane at a specific position.Returns a swimlane object representing the newly added entry. 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.
Swimlane collection
1717
Accesses an individual swimlane. 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.
18.7.2.8.6 Swimlane
A Swimlane object makes available attributes relating to a single row or column in a list of swimlanes Attribute BackColor Type Long Notes Read/Write. The swimlane is filled with this RGB color.
1717
1718
Notes Read/Write. The GUID of the classifier Class. This can be obtained from the corresponding Element object via the ElementGUID property. Read only. Distinguishes objects referenced through a Dispatch interface. Read/Write. Text at the head of the swimlane. Read/Write. The width of the swimlane in pixels.
String Long
18.7.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 Architect GUID to an XML GUID.
1724
Project Attributes
Attribute ObjectType Type ObjectType
1646
1719
Project Methods
Method Type Notes Creates a Baseline of a specified package. Parameters: PackageGUID: String - the GUID (in XML format) of the package to Baseline. Version: String - the version of the Baseline. Notes: String - any notes concerning the Baseline. DefineRule (string CategoryID, EA. EnumMVErrorType ErrorType, string ErrorMessage String Defines the individual rules that can be performed during model validation. It must be called once for each rule from the EA_OnInitializeUserRules 1616 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 1620 for a detailed example of use of this method. Parameters: CategoryId: String - should be passed the return value from the DefineRuleCategory 1719 method. ErrorType: EA.EnumMVErrorType - depending on the severity of the error being validated, can be: mvErrorCritical mvError mvWarning, or mvInformation. ErrorMessage: String - can contain a default error string, although this is probably overridden by the PublishResult 1726 call. DefineRuleCategory (string CategoryName) String Defines a category of rules that can be performed during model validation (there is typically one category per Add-In). It must be called once from the EA_OnInitializeUserRules 1616 broadcast handler. The return value is a CategoryId that must to be passed to the DefineRule 1719 method. See Model Validation Example 1620 for a detailed example of use of this method. Parameters: CategoryName: String - a text string that is visible in the Model Validation Configuration dialog. DeleteBaseline (string BaselineGUID) Boolean Deletes a Baseline, identified by the BaselineGUID, from the repository. Parameters: BaselineGUID: String - the GUID (in XML format) of the Baseline to delete. DoBaselineCompare (string PackageGUID, string Baseline, string ConnectString) String Performs a Baseline comparison using the supplied package GUID and Baseline GUID (obtained in the result list from GetBaselines 1722 ). Optionally you can include the connection string
1720
Method
Type
Notes required to find the Baseline if it exists in a different model file. This method returns a log file of the status of all elements found and compared in the difference procedure. You can use this log information as input to DoBaselineMerge 1720 - automatically merging information from the Baseline. Parameters: PackageGUID: String - the GUID (in XML format) of the package to run the comparison on. Baseline: String - the GUID (in XML format) of the Baseline to run the comparison on. ConnectString: String - the location of the external .EAP file or DBMS to extract the Baseline from.
String
Performs a batch merge based on instructions contained in an XML file (MergeInstructions). You can supply an optional connection string if the Baseline is located in another model. In the MergeInstructions file, each MergeItem node supplies the GUID of a differenced item from the XML difference log. As the merge is uni-directional and actioned in only one possible way, no additional arguments are required. Enterprise Architect chooses the correct procedure based on the Difference results. <Merge> <MergeItem guid="{XXXXXX}" /> <MergeItem guid="{XXXXXX}" /> </Merge> Alternatively, you can supply a single Mergeitem with a GUID of RestoreAll. In this case, Enterprise Architect batch-processes ALL differences. <Merge> <MergeItem guid="RestoreAll" /> </Merge> Parameters: PackageGUID: String - the GUID (in XML format) of the package to merge the Baseline into. Baseline: String - the GUID of the Baseline (in XML format) to merge into the package. MergeInstructions: String - the file containing the GUID of each differenced item from the XML difference log returned by DoBaselineCompare() 1719 . ConnectString: String - the location of the EAP file or DBMS to get the Baseline from, if not in the same model as the package.
Gets an XML list of all elements in a diagram. Parameters: DiagramGUID: String - the GUID (in XML format) of the diagram to get elements for.
EnumDiagrams (string
1721
Method PackageGUID)
Type
Notes Parameters: PackageGUID: String - the GUID (in XML format) of the package to list diagrams for.
Gets an XML list of elements in a specified package. Parameters: PackageGUID: String - the GUID (in XML format) of the package to get a list of elements for.
Gets an XML list of connectors for a specified element. Parameters: ElementGUID: String - the GUID (in XML format) of the element to get all associated connectors for.
Gets an XML list of child packages inside a parent package. Parameters: PackageGUID: String - the GUID (in XML format) of the parent package.
Gets a list of projects in the current file; corresponds to Models 1650 in Repository. Enumerates the Views for a project. Returned as an XML document. Gets a list of Views in the current project. Parameters: ProjectGUID: String - the GUID (in XML format) of the project to get views for.
Exit ()
Exits the current instance of Enterprise Architect; this function is maintained for backward compatibility and should never be called. Enterprise Architect automatically exits when you are no longer using any of the provided objects.
ExportPackageXMI (string PackageGUID, enumXMIType XMIType, long DiagramXML, long DiagramImage, long FormatXML, long UseDTD, string FileName)
Exports XMI for a specified package. Parameters: PackageGUID: String - the GUID (in XML format) of the package to be exported. XMIType: EnumXMIType - specifies the XMI type and version information; see XMIType Enum 1647 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
1722
Method
Type
Notes 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.
Boolean
Generates the code for a single Class. Parameters: 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.
Boolean
Generates the code for all Classes within a package. For example: recurse=1;overwrite=1;dir=C:\ Parameters: PackageGUID: String - the GUID (in XML format) of the package to generate. ExtraOptions: String - enables extra options to be given to the command; currently enables: Generation of all subpackages (recurse) Force overwrite of all files (overwrite) and Specification to auto generate all paths (dir).
Boolean
Creates an XML schema for this GenerateXSD. Returns true on success. Parameters: 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.
String
Returns a list (in XML format) of Baselines associated with the supplied package GUID. Optionally, you can 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.
Gets diagram details, in XML format. Parameters: DiagramGUID: String - the GUID (in XML format) of the diagram to get details for.
1723
Notes Gets XML for the specified element. Parameters: ElementGUID: String - the GUID (in XML format) of the element to retrieve XML for.
Gets constraints for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets efforts for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets metrics for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets files for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets a list of issues (problems) associated with an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets Tagged values for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets a list of requirements for an element, in XML format. Parameters: ElementGUID: String -the GUID (in XML format) of the element.
Gets a list of resources for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
Gets a list of risks associated with an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
1724
Method
Type
Notes ElementGUID: String - the GUID (in XML format) of the element.
Gets a list of tests for an element, in XML format. Parameters: ElementGUID: String - the GUID (in XML format) of the element.
GetLastError ()
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.
Gets connector details, in XML format. Parameters: LinkGUID: String - the GUID (in XML format) of the connector to get details of.
String
Changes an internal GUID to the form used in XML. Parameters: GUID: String - the Enterprise Architect style GUID to convert to XML format.
Boolean
Imports a source code directory into the model. Parameters: PackageGUID: String - the GUID (in XML format) of the package to reverse engineer code into. Language: String - specifies the language of the code to be imported. DirectoryPath: String - specifies the path where the code is found on the computer. ExtraOptions: String - enables extra options to be given to the command; currently enables import of source from all child directories (recurse) - for example: recurse=1.
Boolean
Imports an individual file or binary module into the model, in a package per namespace style import. Parameters: PackageGUID: String - the GUID (in XML format) of the package to reverse engineer code into; this is expected to be a namespace root package. Language: String - specifies the language of the code to be imported. Note: Use the value "DNPE" to import a binary module. This imports a .Net assembly or Java .class file, but not a .jar file. Filename: String - specifies the path where the code or module is found on the computer. ExtraOptions: String - enables extra options to be given to the command; currently unused.
String
1725
Type
Notes PackageGUID: String - the GUID (in XML format) of the target package to import the XMI file into (or overwrite with the XMI file). Filename or XMLText: String - the name of the XMI file. Note: If the String is of type filename it is interpreted as a source file, otherwise the String is imported as XML text. 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.
Boolean
Deprecated. it is recommended that LayoutDiagramEx is used instead. 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 DiagramGUID, long LayoutStyle, long Iterations, long LayerSpacing, long ColumnSpacing, boolean SaveToDiagram)
Boolean
Calls the function to automatically layout a diagram in hierarchical fashion. It is only recommended for Class and Object diagrams. LayoutStyle accepts the following options (also see ConstLayoutStyles Enum 1644 ): 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:
1726
Method
Type
Notes 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.
String
Loads a package that has been marked and 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.
Loads a diagram by its GUID. 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 1724 function to convert it to XML format.
Loads an Enterprise Architect project file. Do not use this method if you have accessed the Project interface from the Repository, which has already loaded a file. Parameters: FileName: String - the name of the project file to load.
String
Returns the results of each rule that can be performed during model validation. It must be called once for each rule from the EA_OnInitializeUserRules 1616 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 1620 for a detailed example of use of this method. Parameters: CategoryId: String - should be passed the return value from the DefineRuleCategory 1719 method. ErrorType: EA.EnumMVErrorType - depending on the severity of the error being validated, can be: mvErrorCritical mvError mvWarning, or mvInformation.
1998-2009 Sparx Systems Pty Ltd
1727
Method
Type
Copies an image of the specified diagram to the clipboard. 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.
Saves an image of the specified diagram to file. Parameters: 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 ()
Reloads the current project. This is a convenient method to refresh the current loaded project (in case of outside changes to the .EAP file). Runs a named RTF report. Parameters: PackageGUID: String - the GUID (in XML format) of the package to run the report on. TemplateName: String - the RTF report template to use. If the PackageGUID has a stereotype of MasterDocument, the template is not required. FileName: String - the file name to store the generated report in.
RunHTMLReport (string PackageGUID, string ExportPath, string ImageFormat, string Style, string Extension)
String
Runs an HTML report (same as Documentation | HTML Documentation when you right-click on a package in the Project Browser). Parameters: PackageGUID: String - the GUID (in XML format) of the package to run the report on. ExportPath: String - the file name to store the generated report in. ImageFormat: String. Style: String. Extension: String.
String
Saves a package that has been configured as a controlled package, to XMI. Only the package GUID is required, Enterprise Architect picks the rest up from the package control information. Parameter: PackageGUID: String - the GUID (in XML format)
1728
Method
Type
Saves a diagram image of the current diagram to file. Parameters: FileName: String - the filename of the image to save.
Shows or hides the Enterprise Architect User Interface. Parameters: Show: Long.
Boolean
Synchronizes a Class with the latest source code. Parameters: ElementGUID: String - the GUID (in XML format) of the element to update from code. ExtraOptions: String - enables extra options to be given to the command; currently unused.
Boolean
Synchronizes each Class in a package with the latest source code. Parameters: PackageGUID: String - the GUID (in XML format) of the package containing the elements to update from code. ExtraOptions: String - enables extra options to be given to the command; currently enables synchronization of all child packages (children) for example: children=1.
Boolean
Transforms an element into a package. Parameters: TransformName: String - specifies the transformation that should be executed. ElementGUID: String - the GUID (in XML format) of the element to transform. TargetPackageGUID: String - the GUID (in XML format) of the package to transform into. ExtraOptions: String - enables extra options to be given to the command; currently unused.
Boolean
Runs a transformation on the contents of a package. Parameters: TransformName: String - specifies the transformation that should be executed. SourcePackageGUID: String - the GUID (in XML format) of the package to transform. TargetPackageGUID: String - the GUID (in XML format) of the package to transform into. ExtraOptions: String - enables extra options to be given to the command; currently unused.
String
Changes a GUID in XML format to the form used inside Enterprise Architect. Parameters: GUID: String - the XML style GUID to convert to
1729
Method
Type
public Object
''An example of how to open an Enterprise Architect repository ''in VB.Net. Public Class AutomationExample ''class level variable for Repository Public m_Repository As Object Public Sub Run() try ''create the repository object m_Repository = CreateObject("EA.Repository") ''open an EAP file m_Repository.OpenFile("F:\Test\EAAuto.EAP") ''use the Repository in any way required 'DumpModel ''close the repository and tidy up m_Repository.Exit() m_Repository = Nothing ....catch e as exception Console.WriteLine(e) End try End Sub end Class
public Object
''Assume repository has already been opened. ''Start at the model level Sub DumpModel() Dim idx as Integer For idx=0 to m_Repository.Models.Count-1 DumpPackage("",m_Repository.Models.GetAt(idx)) Next End Sub
1730
'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) For idx = 0 to Package.Packages.Count-1 DumpPackage(Indent + " ", Package.Packages.GetAt(idx)) Next End Sub ''dump element name Sub DumpElements(Indent as String, Package as Object) Dim idx as Integer For idx = 0 to Package.Elements.Count-1 Console.WriteLine(Indent + "::" + Package.Elements.GetAt(idx).Name) Next End Sub
public Object
Example illustrating how to add a Model or a Package. Sub TestPackageLifecycle Dim idx as integer Dim idx2 as integer Dim package as object Dim model as object Dim o as object ''first add a new Model model = m_Repository.Models.AddNew("AdvancedModel","") If not model.Update() Then Console.WriteLine(model.GetLastError()) End If ''refresh the models collection m_Repository.Models.Refresh ''now work through models collection and add a package For idx = 0 to m_Repository.Models.Count -1 o = m_Repository.Models.GetAt(idx) Console.WriteLine(o.Name) If o.Name = "AdvancedModel" Then package = o.Packages.Addnew("Subpackage","Nothing") If not package.Update() Then Console.WriteLine(package.GetLastError()) End If package.Element.Stereotype = "system" package.Update ''for testing purposes just delete the ''newly created Model and its contents m_Repository.Models.Delete(idx) End If Next End Sub
public Object
''Add and delete elements in a package. 1998-2009 Sparx Systems Pty Ltd
1731
Sub ElementLifecycle Dim package as Object Dim element as Object package = m_Repository.GetPackageByID(2) element = package.elements.AddNew("Login to Website","UseCase") element.Stereotype = "testcase" element.Update package.elements.Refresh() Dim idx as integer ''note the repeated calls to "package.elements.GetAt" ''in general you should make this call once and assign to a local ''variable - in the example below, Enterprise Architect loads the element required ''everytime a call is made - rather than loading once and keeping ''a local reference For idx = 0 to package.elements.count-1 Console.WriteLine(package.elements.GetAt(idx).Name) If (package.elements.GetAt(idx).Name = "Login to Website" and _ package.elements.GetAt(idx).Type = "UseCase") Then package.elements.deleteat(idx, false) End If Next End Sub
public Object
"Add a connector and set values. Sub ConnectorTest Dim source as object Dim target as object Dim con as object Dim o as object Dim client as object Dim supplier as object ''use ElementID's to quickly load an element in this example ''... you must find suitable ID's in your model source = m_Repository.GetElementByID(129) target = m_Repository.GetElementByID(169) con = source.Connectors.AddNew ("test link 2", "Association") ''again- replace ID with a suitable one from your model con.SupplierID = 169 If not con.Update Then Console.WriteLine(con.GetLastError) End If source.Connectors.Refresh 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 ''use the client and supplier ends to set ''additional information
1732
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 and Supplier set") 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 Dim diagram as object Dim v as object Dim o as object Dim package as object Dim idx as Integer Dim idx2 as integer package = m_Repository.GetPackageByID(5) diagram = package.Diagrams.AddNew("Logical Diagram","Logical") If not diagram.Update Then Console.WriteLine(diagram.GetLastError) End if diagram.Notes = "Hello there this is a test" diagram.update() o = package.Elements.AddNew("ReferenceType","Class") o.Update '' add element to diagram - supply optional rectangle co-ordinates 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 'just load an element by ID - you must 'substitute a valid ID from your model element = m_Repository.GetElementByID(246) ''create a new method method = element.Methods.AddNew("newMethod", "int") method.Update 1998-2009 Sparx Systems Pty Ltd
1733
element.Methods.Refresh '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 'loop through and delete our new attribute For idx = 0 to element.attributes.Count-1 attribute =element.attributes.GetAt(idx) Console.Writeline(attribute.Name) If(attribute.Name = "NewAttribute") Then element.attributes.Delete(idx) End If Next
public Object
''Examples of how to access and use element extras, such as ''scenarios, constraints and requirements. Sub ElementExtras Dim element as object Dim o as object Dim idx as Integer Dim bDel as boolean bDel = true try element = m_Repository.GetElementByID(129) 'manage constraints for an element 'demonstrate addnew and delete o = element.Constraints.AddNew("Appended","Type") If not o.Update Then Console.WriteLine("Constraint error:" + o.GetLastError()) End if element.Constraints.Refresh For idx = 0 to element.Constraints.Count -1 o = element.Constraints.GetAt(idx) Console.WriteLine(o.Name) If(o.Name="Appended") Then If bDel Then element.Constraints.Delete (idx) End if Next '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
1734
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 1998-2009 Sparx Systems Pty Ltd
1735
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())
1736
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
1737
18.7.2.10.10 Stereotypes
public Object
Sub TestStereotypes Dim o as object Dim idx as integer ''add a new stereotype to the Stereotypes collection o = m_Repository.Stereotypes.AddNew("funky","class") If(o.Update=false) Then Console.WriteLine (o.GetLastError()) End if o = nothing ''make sure you refresh m_Repository.Stereotypes.Refresh ''then iterate through - deleting our new entry in the process For idx = 0 to m_Repository.Stereotypes.Count-1 COnsole.Writeline(m_Repository.Stereotypes.GetAt(idx).Name) If(m_Repository.Stereotypes.GetAt(idx).Name = "funky") then m_Repository.Stereotypes.DeleteAt(idx,false) Console.WriteLine("Delete element") End if Next End Sub
public Object
''An example of working with attributes. Sub AttributeLifecycle Dim element as object Dim o as object Dim t as object Dim idx as Integer Dim idx2 as integer try element = m_Repository.GetElementByID(129) For idx = 0 to element.Attributes.Count -1 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 For idx2 = 0 to o.TaggedValues.Count-1 t = o.TaggedValues.GetAt(idx2) If(t.Name = "Type2") Then 'Console.WriteLine("deleteing") o.TaggedValues.DeleteAt(idx2, true) End if Next t = o.TaggedValues.AddNew("Type2","Number") t.Update o.TaggedValues.Refresh
1738
For idx2 = 0 to o.TaggedValues.Count-1 t = o.TaggedValues.GetAt(idx2) Console.WriteLine("Tagged Value: " + t.Name) Next If(element.Attributes.GetAt(idx).Name = "m_Tootle") Then Console.WriteLine("delete attribute") element.Attributes.DeleteAt(idx, false) End If 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 Dim element as object Dim method as object Dim t as object Dim idx as Integer Dim idx2 as integer try element = m_Repository.GetElementByID(129) For idx = 0 to element.Methods.Count -1 method = element.Methods.GetAt(idx) Console.WriteLine(method.Name) 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 For idx2 = 0 to method.TaggedValues.Count-1 t = method.TaggedValues.GetAt(idx2) Console.WriteLine("Tagged Value: " + t.Name) 1998-2009 Sparx Systems Pty Ltd
1739
If(t.Name= "TestTaggedValue") Then method.TaggedValues.DeleteAt(idx2,false) End If Next 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
Part
XIX
1741
Glossary of Terms |
19 Glossary of Terms
A
1742
B
1744
C
1745
D
1748
E
1750
F
1751
G
1752
H
1753
I
1754
J
1756
L
1757
M
1758
N
1760
O
1761
P
1762
Q
1765
R
1766
S
1768
T
1771
U
1773
V
1774
Glossary of Terms | A
1742
19.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 computational 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
1998-2009 Sparx Systems Pty Ltd
1743
Glossary of Terms | A
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
Glossary of Terms | B
1744
19.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. behavioral model aspect A model aspect that emphasizes the behavior of the instances in a system, including their methods, collaborations, and state histories. 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.
1745
Glossary of Terms | C
19.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
Glossary of Terms | C
1746
An annotation attached to an element or a collection of elements. A comment, or note, has no semantics. Contrast: constraint 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 composite structure diagram A diagram that reflects the internal collaboration of Classes, Interfaces, or Components to describe a functionality. Composite Structure diagrams are similar to Class diagrams, except that they model a specific usage of the structure. 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.
1998-2009 Sparx Systems Pty Ltd
1747
Glossary of Terms | C
See also: tagged value, stereotype Contrast: comment 2. A rule or condition that applies to some element. It is often modeled as a pre- or post- condition. 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.
Glossary of Terms | D
1748
19.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. defining model [MOF] The model on which a repository is based. Any number of repositories can have the same defining model. 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.
1998-2009 Sparx Systems Pty Ltd
1749
Glossary of Terms | D
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 13 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
Glossary of Terms | E
1750
19.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 pseudostate 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
1751
Glossary of Terms | F
19.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
Glossary of Terms | G
1752
19.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.
1753
Glossary of Terms | H
19.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.
Glossary of Terms | I
1754
19.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. interaction overview diagram A diagram that visualizes the cooperation between other Interaction diagrams to illustrate a control flow serving an encompassing purpose. As Interaction Overview diagrams are a variant of Activity diagrams, most of the diagram notation is similar, as is the process in constructing the diagram. interface A named set of operations that characterize the behavior of an element.
1998-2009 Sparx Systems Pty Ltd
1755
Glossary of Terms | I
See also: class Contrast: type 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.
Glossary of Terms | J
1756
19.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.
1757
Glossary of Terms | L
19.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.
Glossary of Terms | M
1758
19.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 metametamodel 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, metaclasses, meta-attributes, and meta-associations. Meta-Object Facility (MOF) 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. 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 metametamodel 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 element [MOF] An element that is an abstraction drawn from the system being modeled. Contrast: view element; in the MOF specification model elements are considered to be meta-objects. model library A stereotyped package containing model elements that are intended to be reused by other packages. A
1998-2009 Sparx Systems Pty Ltd
1759
Glossary of Terms | M
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
Glossary of Terms | N
1760
19.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 computational resource, which generally has at least a memory and often processing capability. Run-time objects and components can reside on nodes.
1761
Glossary of Terms | O
19.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 flow state A state in an Activity graph that represents the passing of an object from the output of actions in one State to the input of actions in another State. object lifeline A line in a Sequence diagram that represents the existence of an object over a period of time. See also: sequence diagram Object Management Group (OMG) The standards body responsible for the UML specification and management. Their website is www.omg. org - follow the links to the UML pages. 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.
Glossary of Terms | P
1762
19.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.
1998-2009 Sparx Systems Pty Ltd
1763
Glossary of Terms | P
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. published model [MOF] A model that has been frozen, and that becomes available for instantiating repositories and for support
Glossary of Terms | P
1764
1765
Glossary of Terms | Q
19.16 Q
qualifier An Association attribute or tuple of attributes whose values partition the set of objects related to an object across an Association.
Glossary of Terms | R
1766
19.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). rich text format A standard mark-up language for creating word processor documents, frequently associated with Microsoft Word. robustness diagram
1998-2009 Sparx Systems Pty Ltd
1767
Glossary of Terms | R
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
Glossary of Terms | S
1768
19.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. See also: interaction. 2. A sequence of operations carried out in some order to produce a known result. Can apply to Use Cases where it is the equivalent of a Sequence diagram, or to other objects to describe how they are used at run-time. 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. semantic variation point A point of variation in the semantics of a metamodel. It provides an intentional degree of freedom for the interpretation of the metamodel semantics. 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 single valued [MOF] A model element with multiplicity defined is single valued when its Multiplicity Type: upper attribute is set to 1. The term single-valued does not pertain to the number of values held by, for example, an attribute or parameter at any point in time, since a single-valued attribute (for instance, with a multiplicity lower bound of zero) could have no value. Contrast: multi-valued 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
1998-2009 Sparx Systems Pty Ltd
1769
Glossary of Terms | S
some activity, or waits for some event. Contrast: state [OMA] 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 machine diagram A diagram that illustrates how an element, often a Class, can move between States classifying its behavior, according to transition triggers, constraining guards and other aspects of State Machine diagrams that depict and explain movement and behavior. 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. structural model aspect A model aspect that emphasizes the structure of the objects in a system, including their types, Classes, relationships, attributes and operations. subactivity state A State in an activity graph that represents the execution of a non-atomic sequence of steps that has
Glossary of Terms | S
1770
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.
1771
Glossary of Terms | T
19.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. thread [of control] A single path of execution through a program, a dynamic model, or some other representation of control flow. Also, a stereotype for the implementation of an active object as a lightweight process. See also: active object, process, concurrency 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 Enterprise Architect UML 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
Glossary of Terms | T
1772
1773
Glossary of Terms | U
19.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.1 includes 13 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 Enterprise Architect UML 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. use case [class] A UML model 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: either the interaction completed or was rolled back to the initial state. See also: use case instance use case diagram A diagram that captures Use Cases and Actor interactions. It describes the functional requirements of the system, the manner in which outside things (Actors) interact at the system boundary, and the response of the system. use case estimation The technique of estimating project size and complexity based on the number of Use Cases and their difficulty. use case instance The performance of a sequence of actions being specified in a Use Case. An instance of a Use Case. See also: Use Case class use case model A model that describes a system's functional requirements in terms of Use Cases. 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.
Glossary of Terms | V
1774
19.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 pseudostate. 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.
1775
Index Versions Supported 922 Activate MDG Technologies 491 Activation End 1285 Extend Down 1285 Extend Up 1285 Lower 1285 Raise 1285 Sequence Element 1285 Suppress 1285 Activation Layer Sequence Diagram Lifelines 1286 Activation Levels Sequence Diagram Lifeline Self Messages 1286 Active Classes 1379 State Configuration 1362 Active Directory Import User ID From 749 Active State Logic Model State Machine For HDL 902 Activity Behavioral Aspects 407 Edit Parameters 407 Element 1324 Elements And Connectors 120 Group, Enterprise Architect UML Toolbox 120 Instance 1452 Notation 1325 Parameter Nodes 1326 Parameters, Define 408 Partition 1327, 1358 Paste As Action 306 Paste As Link 306 Paste From Project Browser 306 Process Element 1408 Region Element 1360 Structured 1367 Activity (BPEL) Create 514 Loop 514 Model 514 Sub-Process 514 Task 514 Types 514 Activity Diagram Create Object From Attribute 378 Description 1248 Elements And Connectors 1248 Example 1248
Index
-..EMX Import 681 .NET Debug Another Process 1013 Debug Assembly 977 Debug CLR Versions 978 Debug With COM Interop Process 1012 Debug, System Requirements 986 Set Up Debug Session 977 .UML2 Import 681
-AAbstract Complex Models 1387 XSD Models 1050 Acceptance Testing 847 Access Email 172 Internet Search Engine 172 MDG Technologies Remote From Enterprise Architect 492 Web Site 172 Access 2007 Repository, Create 617 Upsize To 594 Acknowledgement CXImage Library 19 Of Contributions 19 Of Trademarks 18 Print Listview 19 Action Element 1317 Expansion Node 1321 Local Pre/Post Conditions 1323 Notation 1318 Operations 1318 Pin 1321 Update Operation 1318 ActionScript Code Generation Language Options 922 Import, Reverse Engineering 886 Modeling Conventions 945 Options 922 Enterprise Architect User Guide
Index
1776
Activity Diagram Generate Code From 898, 906 Object Flows 1446 Operations 1318 Activity Edge Connector 1429 Relationship 1429 Activity Final Element 1343 Activity Partition Docking 1358 Element 1358 Horizontal 1358 Vertical 1358 Actor Element 1328 Ada 2005 Code Generation Language Options 922 Modeling Conventions 946 Options 922 Adaptive Server Anywhere Data Repository, Connect To 641 ODBC Driver, Set Up 611 Repository, Create 626 Upsize To 595 Add Category To Discussion Forum 245 Code Modules In MDG Technology Wizard 1503 Connectors Between Locked Elements 761 Connectors To UML Model, Quick Start 32 Constraint To Connector 438 Constraint To Link 438 Diagram Properties Note 302 Diagram To Package 31 Diagram to Project 279 Diagram To UML Model, Quick Start 31 Diagram Type In MDG Technology Wizard 1499 Element Changes 858 Element Defects 858 Element Directly To Package 348 Element Issues 858 Element Tasks 858 Element To Diagram 31 Element To Diagram From Project Browser 303 Element To UML Model, Quick Start 31 Enumeration Tags To Stereotypes 1478 Expansion Region 1343 Filters To Search 169 Images In MDG Technology Wizard 1505
Instance Variable 1390 Interruptible Activity Region 1354 Key 1459 License Key 1459 Line Points 441 Linked Document Template In MDG Technology Wizard 1508 MDA Transforms In MDG Technology Wizard 1505 Model To Project 588 MS Word Table Of Contents 1215 MS Word Table Of Figures 1216 New Code Sections To Existing Features 943 Note To Connector 438 Note To Link 438 Package In Project Browser 271 Package To UML Model, Quick Start 30 Packages To Model Document 1228 Pattern In MDG Technology Wizard 1498 Pattern To Diagram 486 Port To Element 1394 Post To Discussion Forum 246 Profile Attribute To Diagram 469 Profile Connector To Diagram 469 Profile Element To Diagram 469 Profile In MDG Technology Wizard 1497 Profile Operation To Diagram 469 Project Items Via Toolbar 132 Project Task 866 Property Value to Part 1392 RTF Report Template In MDG Technology Wizard 1507 Scripts In MDG Technology Wizard 1506 Shape Script To Stereotype In Profile 1479 Tagged Value Types In MDG Technology Wizard 1502 Tagged Values 392 Task Panel In MDG Technology Wizard 1501 Test Details 844 Toolbox In MDG Technology Wizard 1500 Topic To Discussion Forum 245 UML Diagram 279 UML Pattern To Diagram 486 Views 662 Add And Delete Attributes Automation Interface Code Example 1732 Add And Delete Methods Automation Interface Code Example 1732 Add And Manage Diagrams Automation Interface Code Example 1732 Add And Manage Elements Automation Interface Code Example 1730 Add And Manage Packages
1998-2009 Sparx Systems Pty Ltd
1777
Index Add-In Event, EA_GetMenuState 1591 Add-In Event, EA_MenuClick 1592 Add-In Event, EA_OnOutputItemClicked 1592 Add-In Event, EA_OnOutputItemDoubleClicked 1593 Add-In Event, EA_ShowHelp 1594 Add-In Event, Overview 1589 Add-In Tasks 1584 Benefits 1583 Broadcast Event, EA_FileClose 1595 Broadcast Event, EA_FileNew 1596 Broadcast Event, EA_FileOpen 1595 Broadcast Event, EA_OnPostInitialized 1606 Broadcast Event, EA_OnPostTransform 1607 Broadcast Event, EA_OnPreExitInstance 1602 Broadcast Event, EA_OnRetrieveModelTemplate 1624 Broadcast Events 1594 Compartment Events 1613 Compartment Events, EA_GetCompartmentData 1614 Compartment Events, EA_QueryAvailableCompartments 1613 Context Item Events 1611 Context Item Events, EA_OnContextItemChanged 1611, 1612 Context Item Events, EA_OnContextItemDoubleClicked 1612 Create Add-In 1584 Create Add-In, Tricks and Traps 1586 Create Custom View 1625 Custom View 1624 EA_Connect 1589 EA_Disconnect 1590 EA_FileClose 1595 EA_FileNew 1596 EA_FileOpen 1595 EA_GetCompartmentData 1614 EA_GetMenuItems 1590 EA_GetMenuState 1591 EA_MenuClick 1592 EA_OnContextItemChanged 1611, 1612 EA_OnContextItemDoubleClicked 1612 EA_OnDeleteTechnology 1610 EA_OnEndValidation 1616 EA_OnImportTechnology 1610 EA_OnInitializeTechnologies 1607 EA_OnInitializeUserRules 1616 EA_OnOutputItemClicked 1592 EA_OnOutputItemDoubleClicked 1593 EA_OnPostActivateTechnology 1608 EA_OnPostInitialized 1606 EA_OnPostNewAttribute 1604
Add And Manage Packages Automation Interface Code Example 1730 Add Connector Automation Interface Code Example 1731 Add Stereotypes Automation Interface Code Example 1737 Add Submenu Element Context Menu, Project Browser 68 Package Context Menu, Project Browser 65 Add to Project Clipboard Menu Option (Edit Menu) 76 Add-In And Enterprise ArchitectDeadlocks (.NET) 1586 COM Interoperability 1586 Concurrent Method Calls 1586 Connect To 104 Create 1584 Create, Define Menu Items 1584 Deploy 1585 Disable 1588 Display Help On 104 Enable 1588 Events 1589 Holding State Information 1586 Manage 1588 Manager 1588 MDG 11 Menu 104 Model Driven Generation 11 Pre-2004 1586 Re-entrancy 1586 Register 1465 Run Functions From Tasks Pane 1518 Search 165, 1588 Search Data 1589 Submenu 104 Tasks 1584 Visual Basic Issues 1586 Add-In Event EA_Connect 1589 EA_Disconnect 1590 EA_GetMenuItems 1590 EA_GetmenuState 1591 EA_MenuClick 1592 EA_OnOutputItemClicked 1592 EA_OnOutputItemDoubleClicked 1593 EA_ShowHelp 1594 Add-In Model Add-In Event, EA_Connect 1589 Add-In Event, EA_Disconnect 1590 Add-In Event, EA_GetMenuItems 1590 Enterprise Architect User Guide
Index
1778
Add-In Model EA_OnPostNewConnector 1603 EA_OnPostNewDiagramObject 1604 EA_OnPostNewElement 1603 EA_OnPostNewMethod 1605 EA_OnPostNewPackage 1606 EA_OnPostTransform 1607 EA_OnPreActivateTechnology 1608 EA_OnPreDeleteConnector 1597 EA_OnPreDeleteDiagram 1597 EA_OnPreDeleteElement 1596 EA_OnPreDeletePackage 1598 EA_OnPreDeleteTechnology 1609 EA_OnPreExitInstance 1602 EA_OnPreNewAttribute 1600 EA_OnPreNewConnector 1599 EA_OnPreNewDiagramObject 1600 EA_OnPreNewElement 1598 EA_OnPreNewMethod 1601 EA_OnPreNewPackage 1602 EA_OnRetrieveModelTemplate 1624 EA_OnRunAttributeRule 1618 EA_OnRunConnectorRule 1618 EA_OnRunDiagramRule 1618 EA_OnRunElementRule 1617 EA_OnRunMethodRule 1619 EA_OnRunPackageRule 1617 EA_OnRunParameterRule 1619 EA_OnStartValidation 1616 EA_QueryAvailableCompartments 1613 EA_ShowHelp 1594 Interface 1583 Introduction 1583 MDG Add-Ins 1625 MDG Add-Ins, MDG Events 1625 MDG Events, MDG_BuildProject 1626 MDG Events, MDG_Connect 1626 MDG Events, MDG_Disconnect 1627 MDG Events, MDG_GetConnectedPackages 1627 MDG Events, MDG_GetProperty 1628 MDG Events, MDG_Merge 1629 MDG Events, MDG_NewClass 1630 MDG Events, MDG_PostGenerate 1630 MDG Events, MDG_PostMerge 1631 MDG Events, MDG_PreGenerate 1632 MDG Events, MDG_PreMerge 1632 MDG Events, MDG_PreReverse 1633 MDG Events, MDG_RunExe 1633 MDG Events, MDG_View 1634 Model Validation Broadcasts 1615
Model Validation Broadcasts, EA_OnEndValidation 1616 Model Validation Broadcasts, EA_OnInitializeUserRules 1616 Model Validation Broadcasts, EA_OnRunAttributeRule 1618 Model Validation Broadcasts, EA_OnRunConnectorRule 1618 Model Validation Broadcasts, EA_OnRunDiagramRule 1618 Model Validation Broadcasts, EA_OnRunElementRule 1617 Model Validation Broadcasts, EA_OnRunMethodRule 1619 Model Validation Broadcasts, EA_OnRunPackageRule 1617 Model Validation Broadcasts, EA_OnRunParameterRule 1619 Model Validation Broadcasts, EA_OnStartValidation 1616 Model Validation Example 1620 Post-New Events 1603 Post-New Events, EA_OnPostNewAttribute 1604 Post-New Events, EA_OnPostNewConnector 1603 Post-New Events, EA_OnPostNewDiagramObject 1604 Post-New Events, EA_OnPostNewElement 1603 Post-New Events, EA_OnPostNewMethod 1605 Post-New Events, EA_OnPostNewPackage 1606 Pre-Deletion Events 1596 Pre-Deletion Events, EA_OnPreDeleteConnector 1597 Pre-Deletion Events, EA_OnPreDeleteDiagram 1597 Pre-Deletion Events, EA_OnPreDeleteElement 1596 Pre-Deletion Events, EA_OnPreDeletePackage 1598 Pre-New Events 1598 Pre-New Events, EA_OnPreNewAttribute 1600 Pre-New Events, EA_OnPreNewConnector 1599 Pre-New Events, EA_OnPreNewDiagramObject 1600 Pre-New Events, EA_OnPreNewElement 1598 Pre-New Events, EA_OnPreNewMethod 1601 Pre-New Events, EA_OnPreNewPackage 1602 Search Data, XML Format 1589 Technology Event, EA_OnInitializeTechnologies 1607
1998-2009 Sparx Systems Pty Ltd
1779
Index Server, Debugging 1014 Service Configuration 1018 App Object Automation Interface 1643 Appearance Apply From Clipboard 343 Connectors Context Menu Section 435 Copy For Element 343 Default, Of Element 360 Element Context Menu 343 Appearance (Element) Autosize 90 Submenu 90 Applets Java, In Internet Browsers, Debug 1018 Application Connector 124 Application Look Dialog 237 Application Workspace 42 Apply Rigorous Security Mode Lock 762 RTF Report Filter (Legacy) 1204 Stereotype To Dependency Relationship 1424 Stereotype To Element 478 Stereotype To UML Construct 478 User Lock 762 Archimate Concept 496 Diagram 496 Disable 496 Elements 496 Enable 496 MDG Technology 496 Relationships 496 Toolbox Pages 496 Argument Call, Synchronize With Behavior Parameter 408 For Behavioral Parameter 410 Invocation, Synchronize With Behavior Parameter 408 Arrange Connectors 439 Arrow Quick Linker 215 Artifact Element 1377 ASA Data Repository, Connect To 641 ODBC Driver, Set Up 611 Repository, Create 626 Upsize To 595
Add-In Model Technology Events 1607 Technology Events, EA_OnDeleteTechnology 1610 Technology Events, EA_OnImportTechnology 1610 Technology Events, EA_OnPostActivateTechnology 1608 Technology Events, EA_OnPreActivateTechnology 1608 Technology Events, EA_OnPreDeleteTechnology 1609 Administrator Security Perrmissions 746 Advanced Settings, Generalizable Elements 381 Tag Management 390 Advanced (Element) Submenu 89 Aggregate Connector 1417 Relationship 1417 Aggregation Connector Change Form 1417 Align Elements From Toolbar 135 Multiple Elements 355 Alignment Submenu 90 All Permissions Dialog, User Security 753 View, User Security 753 Alternative Image For Element 312 In Diagram 312 Select 312 Stereotype 482 Analysis Elements and Connectors 125 Group, Enterprise Architect UML Toolbox 125 Stereotypes 1398 Analysis Diagram Description 1306 Elements And Connectors 1306 Example 1306 ANSI C 923 Modeling Conventions 947 Anti-Aliased Rendering Of Diagrams 224 Anti-Aliased Text In Diagrams 224 Apache Tomcat Server Configuration 1017 Enterprise Architect User Guide
Index
1780
ASP .NET Debug 1010 Assembly Connector 1418 Debug Session 977 Relationship 1418 Assign Information to Tagged Values 199 People To Changes 865 People To Defects 865 Tagged Values To Item 198 Assignments BPEL, Create 520 Associate Calls With Behaviors 407 Connector 1418 Invocations With Behaviors 407 Relationship 1418 Associated Files Elements 389 Association Class 1406 Connector 1418 Connector, Set Collection Class 919 Details 451 N-Ary 1406 Properties 451 Relationship 1418 Set Derived Property 434 Specialisation, Set Up 449 Association Class Connector 1419 Link New Class To Association 1420 Relationship 1419 Attach Constraint To Link 438 Note To Link 438 Attach To Process Dialog 1013 Attribute Add And Delete, Automation Interface Code Example 1732 Add To Element, In-place Editor 418 Automation Interface, ElementFeatures Package 1692 Collections 373 Connect To 437 Constraints 374 Context Menu, Project Browser 69 Copy Between Elements 366 Create 369 Create Fast, Option 915 Create Object From 378
Definition 369 Delete 371 Delete If Not In Code In Reverse Synchronization 915 Derived 371 Dialog 369 Dialog, Constraints Tab 374 Dialog, Detail Tab 373 Dialog, General Tab 371 Disconnect From 437 Edit Keyword 415 Edit Name, In-Place Editor 413 Edit Scope 415 Edit Stereotype, In-place Editor 414 Fast Create 369 Imported, Default Name Generated From 915 Inherited, Display 377 Inherited, Show 300 Introduction 369 Link To Element Via Object 378 Message Part, WSDL 1067 Modify 369 Move Between Elements 367 Multiplicity 373 Of Toolbox Page 1510 PData & StyleEx, Diagram Profiles 1515 Private, Icon 61 Properties, Create 375 Protected, Icon 61 Show On Diagram 300 Stereotyped, For Columns 1081 Supported, By XML Element Node 474 Supported, Create Composite Elements 1486 Supported, Define Child Diagram Types 1486 Supported, In UML Profile 474 Supported, Metatype In UML Profiles 1483 Supported, Stereotype In UML Profiles 1483 Tagged Values 375 UML Property, isUnique 373 Work With, Automation Interface Code Example 1737 AttributeConstraint Automation Interface, ElementFeatures Package 1694 AttributeTag Automation Interface, ElementFeatures Package 1695 Audit Requirements 582 Scope 768 Audit History Tab Description 774 How To Display 774
1998-2009 Sparx Systems Pty Ltd
1781
Index Accept Windows Authentication 747 Automatic Delete On Relocation Of Project 747 Author Attributes 1661 Define 796 From Windows Active Directory 796 Methods 1661 Author Collection Automation Interface Repository 1661 Auto Counter Of Elements 348 Auto Naming Of Element 348 Auto Numbering Of Elements 348 Auto Route Diagram Layout 292 Auto Save Diagram Changes 227 Autocompletion List Code Editor, Common 208 Autohide Reveal Autohidden Window 175 Turn Off 175 Turn On 175 Windows 175 Autolayout Diagram 293 Options 293 Automatic Save Of Diagram Changes 227 Automatic Indentation Code Editor, Common 205 Automatically Hidden Windows Animate 79 Automation Interface App Object 1643 Attribute, ElementFeatures Package 1692 AttributeConstraint, ElementFeatures Package 1694 AttributeTag, ElementFeatures Package 1695 Available Resources 1640 Call Executables From Enterprise Architect 1635 Call From Enterprise Architect 1639 Code Example, Add And Delete Attributes 1732 Code Example, Add And Delete Methods 1732 Code Example, Add And Manage Diagrams 1732 Code Example, Add And Manage Elements 1730
Audit History Tab On Output Window 146, 202 Audit Options All 769 Connectors Audited 769 Core Structural 769 Custom 769 Elements Audited 769 Maintenance 769 Audit View Audit Changes 772 Controls 772 Custom Time Periods 772 Display Database Changes 772 Filter By Time 772 Mode, Advanced 772 Mode, Raw 772 Mode, Standard 772 Performance Problems 775 Refresh 772 Search 772 Slow Loading 775 Slow Navigation 775 Sort 772 Auditing Alternative To Differencing 776 And Performance Of Enterprise Architect And RTF Reporting 766 Audit Tree 770 Display Audit Results 770 Enable 768 How To Invoke 767 Include Reverse Engineering 768 Include XMI Export 768 Include XMI Import 768 Introduction 766 Large Deletion Issue 775 Level, Core 769 Level, Extended 769 Level, Standard 769 Performance Issues 775 Quick Start 767 Record Display 770 Reverse Engineering Issue 775 Settings 767, 768 Use Database Timestamp 768 XMI Import Issue 775 Auditing Settings Clear Logs 768 Load Logs 768 Save Logs 768 Authentication Enterprise Architect User Guide
766
Index
1782
Package 1641 Automation Interface Code Example, Add And Manage Packages Parameter, ElementFeatures Package 1699 1730 Partitions Collection, ElementFeatures Package Code Example, Add Connector 1731 1700 Code Example, Add Stereotypes 1737 Project Interface 1718 Code Example, Iterate Through EAP File 1729 Project, Project Interface 1718 Code Example, Open The Repository 1729 Properties, ElementFeatures Package 1701 Code Example, Use Element Extras 1733 Property ElementFeatures Package 1701 Code Example, Use Repository Extras 1735 PropType Enum 1646 Code Example, Work With Attributes 1737 Reference 1640 Code Example, Work With Methods 1738 ReloadType Enum 1647 Code Examples, Introduction 1729 Repository 1648 Connect From Borland Delphi 7.0 1635 Repository Package 1647, 1666 Connect From Java 1635 Repository, Author Collection 1661 Connect From MS C# 1635 Repository, Client Collection 1662 Connect From MS Visual Basic 6.0 1635 Repository, Collection Class 1663 Connect To 1635 Repository, Datatype 1664 Connector Package Diagram 1703 Repository, EventProperties 1665 Connector, Connector Package 1704 Repository, EventProperty 1665 ConnectorConstraint, Connector Package Repository, ModelWatcher 1666 1703 Repository, ProjectIssues 1670 ConnectorEnd, Connector Package 1707 Repository, ProjectResource 1671 ConnectorTag, Connector Package 1708 Repository, PropertyType 1672 ConstLayoutStyles Enum 1644 Repository, Reference 1672 Constraint, Element Package 1677 Repository, Stereotype 1673 CreateModelType Enum 1644 Repository, Task 1674 CustomProperties Collection, ElementFeatures Repository, Term 1675 Package 1695 Requirement, Element Package 1686 Diagram Package 1710 Resource, Element Package 1687 Diagram, Diagram Package 1711 Risk, Element Package 1688 DiagramLinks, Diagram Package 1714 RoleTag, Connector Package 1709 DiagramObjects, Diagram Package 1715 Scenario, Element Package 1689 Effort, Element Package 1677 Set Up Visual Basic 1637 Element Package Diagram 1675 Swimlane, Diagram Package 1717 Element Package, File 1684 SwimlaneDef, Diagram Package 1716 Element, Element Package 1678 Swimlanes, Diagram Package 1717 ElementFeatures Package Diagram 1691 TaggedValue, Element Package 1689 EmbeddedElements Collection, ElementFeatures Test, Element Package 1690 Package 1696 Transitions Collection, ElementFeatures Package Enumerations 1644 1702 EnumRelationSetType Enum 1645 Using 1635 Examples 1635 VB GetObject Support 1643 Examples and Tips 1638 XMIType Enum 1647 Introduction 1635 Autonumbering Issue, Element Package 1685 And Requirements 576 MDGMenus Enum 1645 Autosize Method, ElementFeatures Package 1696 Element, Single 303 MethodConstraint, ElementFeatures Package Elements, As Group 303 1698 Available Resources MethodTag, ElementFeatures Package 1699 Automation Interface 1640 Metric, Element Package 1686 Model 1641 ObjectType Enum 1646
1998-2009 Sparx Systems Pty Ltd
1783
Index
-BBase Project Copy 649 New 649 Baseline And Differences, Overview 776 Considerations 777 Create 779 Delete 777 Export 777 Import 777 Load From Alternative Model 777 Manage 777 Merge With Current Model, Overview 776 Model 777 Overview 777 Requirements 582 Scenarios 777 Versions 779 BaseModel Script InnoDB 604 MyISAM 604 Batch Generate Elements With Code 89 RTF Resource Documents, Automatically 1191 RTF Resource Documents, Manually 1191 Batch XMI Export 689 Import 690 Behavior Associate With Calls 407 Associate With Invocations 407 Instance 1452 Parameter, Tagged Values 409 Parameters, Define 408 Synchronize Call Arguments With Parameters 408 Synchronize Invocation Arguments With Parameters 408 Behavior Call Modeling 407 Parameter Arguments 410 Behavioral Diagram Elements 1316 Overview 1247 Behavioral Model Templates 1570 Behavioral Modeling 396 Behavioral Models Generate Code From 898 Enterprise Architect User Guide
Behavioral Parameter Edit 408 Extend 408 Reassign 408 Set 408 Behaviors Of Activities 407 Of Interactions 407 Bend Connector At Cursor 441 Bend Connector 32 Bezier Lines 441 Binary Module Import, Reverse Engineering 889 Binding WSDL Diagram 1064 WSDL Element 1064 Bitmap Image In Diagrams 312 Blue Exclamation Mark 763 Bookmark Clear 76 Clear All 76 For RTF Report 1213 Insert In RTF Template 1181 Multiple Elements 880 Package As 1213 RTF, In Master Document Element 1224 Selected Element 76 Triangle 880 Bookmark Selected Menu Option (Edit Menu) 76 Bookmarks Code Editor, Common 205 Border Red 763 Boundary Element 1398 Element Appearance 1371 Element, Create 1399 Object Settings 1371 Properties 1371 Box Diagram Layout 285 BPEL Assignments, Create 520 BPMN Elements Not Mapable 501 Concepts 498 Create Assignments 520 Create Model 499 Diagram 498 Disable 498 End Event, Model 505
Index
1784
BPEL Generate 521 In Enterprise Architect 498 Intermediate Event, Model 508 Looping Constructs 514 MDG Technology 498 Model A Process 501 Model Activity 514 Model Gateway 512 Model Pool 519 Model Validation 523 Model, Create 499 Modeling Restrictions 498 Package Structure 499 Process, Properties 501 Start Event, Model 502 Sub Process Types 514 Task Types 514 Validation Violations 523 Web Service, Create 522 BPMN 1.0 525 1.1 525 Change Element Appearance 528 Concepts 525 Connectors 525 Core Toolbox Page 525 Diagram 525 Disable 525 Element Appearance, Change 528 Elements 525 MDG Technology 525 Relationships 525 Types Toolbox Page 525 Update Version Via Toolbox Element 528 Version Differences In Appearance 528 BPMN 1.1 Activity Types 514 Elements Not Mappable to BPEL 501 End Event, Types 505 Gateway Types 512 Intermediate Event, Types 508 Pool 519 Start Event, Types 502 Sub-Process Types 514 Task Types 514 Brace/Bracket Matching Code Editor, Common 205 Branching Macros Code Template Syntax 1567 Breakpoint Add To Code 992
Delete All 992 Delete Single 992 Disable 992 Enable 992 Folder 991 Format 992 Overview 992 States 992 Window 992 Broadcast Event Add-In Model 1594 EA_FileClose 1595 EA_FileNew 1596 EA_FileOpen 1595 EA_OnPostInitialized 1606 EA_OnPostTransform 1607 EA_OnPreExitInstance 1602 EA_OnRetrieveModelTemplate 1624 Browser Element 191 Build And Run 965 Build Script, Create 970 Debug With Enterprise Architect 986 Deploy Script, Create New 979 Manage Compile Scripts 968 Record A Debug Session 1022 Run Script, Create New 972 Sequence Diagram 1022 Source Code Configuration 967 Submenu (Project Menu) 83 Unit Test Script, Create New 971 Unit Testing 1037 Build And Run Submenu Package Context Menu, Project Browser 66 Build Script Create 970 Dialog 968 Enable Diagnostic Messages, Sequence Diagram Recording Tab 985 Enable Filter, Sequence Diagram Recording Tab 980 Filters 980 Limit Auto Recording to Stack Frame Threshold, Sequence Diagram Recording Tab 984 Options, Sequence Diagram Recording Tab 980 Record Arguments To Function Calls, Sequence Diagram Recording Tab 982 Record Calls To Dynamic Modules, Sequence Diagram Recording Tab 983 Record Calls To External Modules, Sequence Diagram Recording Tab 982 Recursive 979
1998-2009 Sparx Systems Pty Ltd
1785
Index Compose Rules 562 Computational Rule Table Decision Table 562 Export Rules To CSV File Fact Model, Create 557 Generate Code 565 Overview 554 Rule Composer 562 Rule Flow Diagram 557 Rule Model 560 Vocabulary 557
Build Script Wildcard in Filter 980 Build Systems Using UML Enterprise Architect 5 Built-In Diagram Types 1515 Transformations 1125 Business Rules & Scenarios 194 Business Analyst And Enterprise Architect 256 Project Role 256 Business and Software Engineering Edition Of Enterprise Architect 8 Business Interaction Diagram Description 1314 Elements And Connectors 1314 Example 1314 Business Modeling Business Process Outline 554 Events 553 Example 550 Goals 554 Information 552 Inputs 552 Outputs 553 Process Element 551 Process Modeling Notation 551 Processes 550 Resources 552 Traceability 786 Business Modeling Diagram Description 1314 Elements And Connectors 1314 Example 1314 Business Process Analysis 47 Model, Template 47 Outline 554 Business Process Execution Language (BPEL) 498 Business Process Modeling 1306 Business Process Modeling Notation (BPMN) 525 Business Rule Add To Rule Task 562 Create 562 Element 560 Export To CSV File 562 Generate Code 565 Remove From Rule Task 562 Business Rule Modeling Business Rules 560 Enterprise Architect User Guide
562 562
-CC Code Generation Language Options 923 Import, Reverse Engineering 886 Modeling Conventions 947, 948 Object Oriented Programmiing 948 Options 923 C# Code Generation Language Options 924 Import, Reverse Engineering 886 Modeling Conventions 949 Options 924 Transformation 1125 C++ Code Generation 925 Implementation Files 925 Import, Reverse Engineering 886 Language Options 925 Modeling Conventions 951 Modeling Conventions, CLI Extensions 953 Modeling Conventions, Managed 952 Set Up Debug Session 974 Calibration Of Project Factors 825 Call Associate With Behaviors 407 Automation Interface From Enterprise Architect 1639 Re-associate With Behavior 407 Self Message 1434 Synchronize Arguments With Behavior Parameters 408 Calltips Code Editor, Common 208 Camel Case Naming Format 1150 Cancel Default Diagram, Model 326 Validation 84
Index
1786
Capture State Transitions Debugger Options Tab 1032 Cardinality (Multiplicity) Define 816 CASE Tool Enterprise Architect 3 Category Add To Discussion Forum 245 Author 245 Central Buffer Node Element 1329 Chaining Transformations 1121 Change BPMN Element Appearance 528 Connector Source Or Target 440 Connector Type 440 Diagram Type 298 Element 862 Element Type 355 Elements And Requirements 582 Form Of Aggregation Connector 1417 Tracking 766 Change Conflicts Resolve 678 Change Element Hide Stereotype Letter 863 Show Stereotype Letter 863 Change Management And Requirements 582 Character Set Set Up For RTF Report 1200 Set Up For RTF Report (Legacy) 1211 Check Data Integrity 652 Model Integrity 652 Project Integrity 652 Check Constraint Create 1098 What Is A? 1098 Check In Branch 736 Explanation 732 Offline Packages 743 Packages Online 736 Project Browser Icon 736 Check Out Explanation 732 Packages Offline 736, 743 Project Browser Icon 736 Checked In Package Icon 61 Checked Out Package
Icon 61 Child Confirm Element As Parent 352 Child Element Paste Object As 303 Choice Element 1329 Circle Diagram Layout 282 Class Active Classes 1379 Collection, Set 919 Created In Transformation, Connect To 1148 Element 1378 Elements And Connectors 116 Elements, Imported 1114 Group, Enterprise Architect UML Toolbox 116 Make Into Association Class 1420 Members, Show/Hide On Diagram 325 Model Template 50 Parameterized Classes (Templates) 1380 Partial 949 Partial, Generate 895 Reset Options 935 Show Realised Interfaces On Diagram 316 Source Code Generation 892 View 661 Class Diagram Description 1295 Edit Elements 88 Elements And Connectors 1295 Example 1295 CLASSGUID Add-In Hidden Field 1588 Classifier Drop As Link 303 Drop As New Instance 303 Item Conveyed 1427 Of Objects 393 Properties 1300 Set 394 Use 394 CLASSTYPE Add-In Hidden Field 1588 Clean Project 652 Clear All Bookmarks Menu Option (Edit Menu) 76 Clear Project Clipboard Menu Option (Edit Menu) 76 Clear Selection Menu Option (Edit Menu) 76 CLI Extensions
1998-2009 Sparx Systems Pty Ltd
1787
Index Build Script, Create 970 Code, Reverse Engineer 884 Debug With Enterprise Architect 986 Deploy Script, Create New 979 Eclipse 889 Element Context Menu 342 Generate Code For Single Class 893 Generate Group of Classes 894 Generate Package 895 Generate Package Source Code 895 Generate Source Code 892 Introduction 882 Namespaces 897 Package Contents, Update 896 Referenced XML Schema 1055 Reverse Engineer Source Code 884 Run Script, Create New 972 Set Up Debug Session 973 Settings 911 Settings, Attribute/Operation Options 915 Settings, Code Generation Constructor/Destructor Options 914 Settings, Code Page for Source Editing 916 Settings, General Code Options 911 Settings, Import Component Types 912 Settings, Source Code Options 911 Synchronization 884 Synchronize Model And Code 890 Synchronize Package Tree 896 UML Profile For XSD 1044 Unit Test Script, Create New 971 Update Package Contents 896 Visual Studio.NET 889 With Enterprise Architect 27 XML Schema 1042 XML Schema (XSD), Default UML To XSD Mappings 1052 XML Schema, Abstract XSD Models 1050 XML Schema, Generate XSD 1052 XML Schema, Import XSD 1055 XML Schema, Model XSD 1042 XSD 1042 XSD Datatype Packages 1050 Code Engineering Submenu Package Context Menu, Project Browser 65 Code Generation ActionScript Language Options 922 Ada 2005 Language Options 922 C Language Options 923 C# Language Options 924 C++ Language Options 925 Delphi Language Options 926
CLI Extensions C++ Modeling Conventions 953 Client Define 802 Client Collection Automation Interface Repository 1662 Clipboard Copy Discussion Forum Path To 249 Clipboard File Format Define 219 Close Full Screen 106 Close Project Menu Option (File Menu) 71 CLR Versions Debug .NET 978 Code Delete From Features In Model In Fwd Synchronization 915 Generate For Business Rule 565 Generated From State Machine 899 Generation, Toolbar 133 Import, Select Language 133 Language, Set Default 133 Synchronize 942 Code Editor, Common Autocompletion List 208 Automatic Indentation 205 Bookmarks 205 Brace/Bracket Matching 205 Calltips 208 Commenting 205 Configuration 205 Context Menu 214 Cursor History 205 IME 214 Input Method Editor 214 Intellisense 208 Key Bindings 210 Line Selection 205 Mouseovers 208 Scope Guides 205 Search Facility 214 Zooming 205 Code Engineering And MDG Link 889 Broad View Of, In Enterprise Architect 27 Build And Run 965, 986 Build And Run, Manage Compile Scripts 968 Build And Run, Source Code Configuration 967 Build And Run, Unit Testing 1037 Enterprise Architect User Guide
Index
1788
Code Generation From Activity Diagrams 898, 906 From Behavioral Models 898 From Interaction Diagrams 898, 905 From Sequence Diagrams 898, 905 From State Machine Diagrams 898 Java Language Options 929 Language Options 921 MDG Technology Language Options 934 PHP Language Options 930 Python Language Options 930 SystemC Language Options 931 VB.NET Language Options 932 Verilog Language Options 932 VHDL Language Options 933 Visual Basic Language Options 934 Code Language Create Properties As Attributes 375 Code Module Add To MDG Technology 1503 Code Sections Synchronize 943 Code Template Base Templates 938 Custom Templates, Create 1579 Default Templates 1581 Editor 940, 1579 Editor, Add New Stereotyped Templates 1581 Editor, Create Templates For Custom Languages 1582 Editor, In SDK 1579 Export 1579 Framework, In SDK 1549 Framework, Overview 937 Import 1579 Overview 937 Syntax, Introduction 1549 Syntax, Literal Text 1549 Syntax, Macros 1550 Syntax, Template Substitution Macros 1550 Code Template Syntax Variable Definitions 1577 Variable References 1577 Variables 1577 Codepage Set Up For RTF Report 1200 Set Up For RTF Report (Legacy) 1211 Collaboration Element 1381 Elements and Connectors, Now Communication 118 Message 1440
Collaboration Diagram Description 1289 Elements And Connectors 1289 Example 1289 Message Colors 1290 Collaboration Occurrence Element 1382 Collaborative Development 917 Collection Class Automation Interface Repository 1663 Collection Classes Set 919 Collections, EASL Action 1571 Behaviors 1571 Classifier 1571 Construct 1571 Node 1571 State 1571 State Machine 1571 Transition 1571 Trigger 1571 Vertex 1571 Color Of Communication Messages 233 Color Code External Requirements 577 Color Query Shape Scripts 1534 Column Create In Data Modeling 1081 Definition 1081 In UML Data Modeling Profile 1081 Order, Change 1081 Properties 1081 Sequence Entries 1081 Stereotyped Attribute 1081 Unique 1081 COM Interop Debug .NET 1012 Combine Windows In One Frame 173 Combined Fragment Create 1332 Element 1330 Interaction Operator 1333 Comma Separated Value Export 692, 695 Import 692, 697 Commands Add To Toolbar 93 Change Icon Appearance 93 Customize 93
1998-2009 Sparx Systems Pty Ltd
1789
Index Tag 831 Testing 831 Compartment Events Add-In Model 1613 EA_GetCompartmentData 1614 EA_QueryAvailableCompartments 1613 Compile Scripts Manage In Build And Run 968 Compiled November 4th 2009 3 Complex Modeling Enterprise Architect 5 Component Description 1304 Diagram 1304 Element 1383 Elements And Connectors 121, 1304 Example 1304 Group, Enterprise Architect UML Toolbox 121 Model Template 51 View 661 Compose Connector 1421 Relationship 1421 Composite Elements 1400 Elements And Connectors 118 Foreign Key 1088 Group, Enterprise Architect UML Toolbox 118 State 1361, 1362 State Regions 1255 Composite Aggregation Connector 1421 Relationship 1421 Composite Element Paste From Project Browser 306 Composite Elements Metaclass, Create With Supported Attributes 1486 Composite Structure Diagram Description 1298 Elements And Connectors 1298 Example 1298 Compress Timeline 1277 Transition 1277 Computational Rule Table Business Rule Modeling 562 Concept Archimate 496 BPEL 498 BPMN 525 Mind Mapping 533
Commands Remove From Toolbar 93 Commenting Code Editor, Common 205 Common Connectors 114 Elements 114 Group, Enterprise Architect UML Toolbox Relationships 114 Communication Connector 1421 Elements and Connectors 118 Group, Enterprise Architect UML Toolbox Message 1439 Message, Create 1439 Message, Properties 1439, 1440 Message, Sequence 1440 Relationship 1421 Communication Diagram Description 1289 Elements And Connectors 1289 Example 1289 Labelled Associations 1289 Message Colors 1290 Numbering In 1289 Communication Message Colors 233 Communication Path Connector 1420 Relationship 1420 Compact Project .EAP File 660 Compare Data 656 DDL With Database 1102 Models 656 Projects, Instructions 656 Projects, Why? 656 Utility 776 Compare Utility 779 Context Menu 782 Keyboard Options 782 Merge Options 782 Options 780 Output 781 Tab 781 Toolbar 782 Compartment Constraint 831 Element 831 Maintenance 831 Responsibility 831 Enterprise Architect User Guide
114
118
Index
1790
Concept SoaML 535 SPEM 537 SysML 543 Concurrent Method Calls In Add-Ins 1586 Concurrent Substate Regions 1255 Conditional Substitution Field Substitution Macros, Code Template Syntax 1550 Configuration Apache Tomcat Server 1017 Code Editor, Common 205 JBOSS Server 1016 Tomcat Server 1017 Tomcat Service 1018 Configure Controlled Packages With XMI 686 Local Options 218 Model Validation 667 Options 218 Package For Version Control 734 Packages 686 User Settings 218 Version Control, Subversion 725 Configure Timeline Dialog States Tab 1271 Transitions Tab 1273 Confirm Parent Element 352 Connect Elements 436 Objects 436 To ASA Data Repository 641 To Automation Interface 1635 To Data Repository 629 To Element Feature 437 To MSDE Server Data Repository 644 To MySQL Data Repository 629 To Oracle 10g Data Repository 635 To Oracle 11g Data Repository 635 To Oracle 9i Data Repository 635 To PostgreSQL Data Repository 638 To Progress OpenEdge Data Repository 644 To SQL Server Data Repository 632 Connections In Discussion Forum 249 In Relationships Window 193 To Other Forums 249 Window 193 Connector
Activity Edge 1429 Add Between Locked Elements 761 Add Constraint 438 Add Note 438 Add To Diagram 32 Add To UML Model, Quick Start 32 Add, Automation Interface Code Example 1731 Advanced, Menu Section 434 Aggregate 1417 Appearance 435 Application 124 Arrange 439 Assembly 1418 Associate 1418 Association 1418 Association Class 1419 At Page Boundaries 441 Automation Interface, Connector Package 1704 Bend At Cursor 441 Bend Connector 32 BPMN 525 Break Connection To Feature 437 Change Source Or Target 440 Change Type 440 Characteristics, Edit 434 Communication 1421 Communication Path 1420 Compose 1421 Composite Aggregation 1421 Connect To Element Feature 437 Connector 1421 Constraints 452 Context Menu 432 Control Flow 1422 Create Between Elements 444 Create From Project Browser 444 Create From UML Toolbox 108 Create In MDA-Style Transformation 1148 Create With Element Using Quick Linker 215 Create With Quick Linker 217 Create, Same Type As Previous 86 Custom Properties 338 Custom Properties, Set Value 434 Data Flow 529 Delegate 1423 Delete 445 Dependency 1423 Dependency, Apply Stereotype 1424 Deployment 1424 Destination Role 455
1998-2009 Sparx Systems Pty Ltd
1791
Index Role Binding 1450 Role, Context Menu 432 Self-Message 1433 Shape Script Properties 1534 Source Role Properties 453 Styles 434, 441 Tagged Value (Profile Toolbox) 124 Tagged Value, Use 1475 Target Role Properties 455 Tasks 435 To Class Created In Transformation 1148 Trace 1452 Transform 1148 Transition 1452 Type Specific Menu Section 433 Type, Change 440 Usage 1454 Use 1454 Visibility 435, 444, 447 What Is A? 1415 Working With 432 Connector Package Connector, Automation Interface 1704 ConnectorConstraint, Automation Interface 1703 ConnectorEnd, Automation Interface 1707 ConnectorTag, Automation Interface 1708 RoleTag, Automation Interface 1709 Connector Package Diagram Automation Interface 1703 Connector Styles Auto Routing 441 Bezier 441 Custom 441 Direct 441 Lateral 441 Line Style 441 Set 441 Tree Style 441 ConnectorConstraint Automation Interface, Connector Package 1703 ConnectorEnd Automation Interface, Connector Package 1707 ConnectorTag Automation Interface, Connector Package 1708 Console Commands, Scripter Window 187 Tab, Scripter Window 187 Constant Custom, For RTF Reports 1199
Connector Details 451 Direction Indicator 316 Display Options 232 Duplication In Transformation 1148 Extend 1425 Extension (Profile Toolbox) 124 Generalization 1425 Generalize 1425 Generalize (Profile Toolbox) 124 Hide 445 Hide/Show 435 Implements 1449 Include 1426 Information Flow 1426 Inheritance 1425 In-place Editor Options 448 Interrupt Flow 1429 Invoke 116 Labels 316 Labels, Edit 448 Line Color 221 List For Requirements 579 Locked 761 Manifest 1429 Message 1429 Move 34, 439 Multiplicity 453 Nesting 1445 Notelink 1446 Notes 195 Object Flow 1446 Occurrence 1448 Off-Page 432 Overview 1415 Package Import 1448 Package Merge 1448 Page Boundary 441 Pkg Import 1448 Pkg Merge 1448 Precede 116 Properties 451 Properties Menu 433 Realization, Common Diagram 579 Realization, Quick Generation Of 579 Realize 1449 Recursion 1450 Redefinition 124 Relationship 1421 Representation 1451 Represents 1451 Reverse Direction 448 Enterprise Architect User Guide
Index
1792
ConstLayoutStyles Enum Automation Interface 1644 Constraint Add To Link/Connector 438 Automation Interface, Element Package 1677 Compartment, Element 831 Delete 374 Element 386 In Connector 452 In Rules & Scenarios Window 194 Inherited, Show 300 Internal, Import As Test 852 Note, Element 1358 Of Attributes, Create 374 On States, Debugger Generation Of Sequence Diagrams 1035 Operators On 1035 Post Condition On Actions 1323 Precondition On Actions 1323 Profile 1476 Status Type, Define 807 Stereotype 1476 Synchronize, And Tagged Values 470 Synchronize, From MDG Toolbox Pages 470 Synchronize, From Resources Window 470 Type, Define 806 Contents Table, MS Word, Add 1215 Contents Submenu Package Context Menu, Project Browser 67 Context Diagram 529 Context Element Highlight 365 In Multiple Selection 365 Context Item Events Add-In Model 1611 EA_OnContextItemChanged 1611, 1612 EA_OnContextItemDoubleClicked 1612 Context Menu Apply Stereotype Option 108, 470 Attribute, Project Browser 69 Code Editor, Common 214 Connector 432 Connector Label 316 Connector Role 432 Diagram 277 Diagram, Project Browser 69 Discussion Forum 244 Element 335 Element Label 316 Element, Add Supporting Diagrams and Elements 339
Element, Multiple Selection 345 Element, Project Browser 67 Linked Document Editor 427 Method, Project Browser 69 Model Views 150 Model, Project Browser 61 New Element Or Connector 277 Operation, Project Browser 69 Package, Project Browser 63 Scripter Window 185 Continuation Element 1365 Control Create 1401 Element 1400 Control Flow Connector 1422 Guard 1422 Relationship 1422 Weight 1422 Control Macros Code Template Syntax 1567 Controlled Package 734 Batch Export To XMI 689 Batch Import From XMI 690 Load 689 Menu, XMI 685 Recovery 690 Version Control 690 With XMI 685 Converge Diagram Layout 289 Convert Linked Element To Local Copy 366 Names In MDA Transformations 1150 CONVERT_NAMES 1150 CONVERT_TYPE 1150 Convey Information Item 1427 Copy Attributes Between Elements 366 Base Project 649 Diagram Image To Clipboard 298 Diagram Image To Disk File 297 Diagram, Deep 299 Diagram, Shallow 299 Element On Diagram 297 Maintenance Item Between Categories 859 Model 73, 75 Operations Between Elements 366 Packages Between Projects 657 RTF Bookmark To Clipboard 65, 69 Test Between Categories 849
1998-2009 Sparx Systems Pty Ltd
1793
Index End Event, BPEL 505 Entity 1402 Favorites Folder, Model View 149 Favorites Folder, Model View (Context Menu) 150 Foreign Key 1088 Gateway, BPEL 512 Hidden Submenu In Toolbox Profile 1510 HTML Report 1233 Index (Data Modeling) 1098 Intermediate Event, BPEL 508 Link Between Elements 444 Linked Document Template 430 Masked Tagged Values 1547 MDG Technologies 1493 Model 591 MSDE Server Repository 628 MySQL Repository 618 Notes 359 Oracle 10g Server Repository 623 Oracle 11g Server Repository 623 Oracle 9i Server Repository 623 Pattern 484 Pool, BPEL 519 PostgreSQL Repository 623 Primary Key 1085 Primary Key Name Template 1085 Profiles 1470 Progress OpenEdge Repository 628 Project 591 Project File 588 Reference Data Tagged Values 1546 Relationship Using Matrix 461 Replicas 676 Requirements 576 Rich Text Format Report (Enhanced Generator) 1156 Root Node, Model View 149 Root Node, Model View (Context Menu) 150 RTF Report (Enhanced Generator) 1156 RTF Style Template 1162 RTF Style Template (Legacy) 1208 Run Script 972 Search Definition 165 Sequence Diagram in Debug Session 1030 Slideshow, Model View 149 Slideshow, Model Views 154 Sorted Lookup Table 1098 SQL Server Repository 620 Start Event, BPEL 502 State Machine For Sequence Diagram Generation, Debugger 1034
Copy UML Diagram, Deep 299 UML Diagram, Shallow 299 Copyright Notice 15 CORBA MDG Technology For, Enterprise Architect 11 Co-Region Notation 1430 Corporate Edition Of Enterprise Architect 8 Corporate RTF Templates Add RTF Sections To 1190 Import 1190 Correct Spell Checked Words 252 Corrupt EAP file 661 Create Access 2007 Repository 617 Activity, BPEL 514 Adaptive Server Anywhere Repository 626 Add-In 1584 Attribute Properties 375 Baselines 779 Boundary Element 1399 BPEL Assignments 520 BPEL Model 499 BPEL Web Service 522 Build Script 970 Check Constraint 1098 Columns In Data Modeling 1081 Combined Fragment 1332 Communication Messages 1439 Connector With Quick Linker 217 Control Element 1401 Custom Diagram Background, Image Manager 314 Custom Tagged Values 1547 Custom View, Add-In Model 1625 Data Repository 617 Deploy Script 979 Design Master 676 Diagram 279 Diagram From Linked Document 429 Diagram, Automatically 271 Document Artifact 426 Documents 1154 Element And Connector With Quick Linker 215 Element From Linked Document 429 Element From Maintenance Item 859 Element In Diagram 346 Element On Diagram From Project Browser 303 Element Template 364 Elements 346 Enterprise Architect User Guide
Index
1794
Create Structured Tagged Values 1544 Table in Data Modeling 1074 Tasks Pane Profiles 1516 Text 359 Timing Diagram 1266 Timing Message 1443 Toolbox Profile For MDG Technology 1509 Trigger Operation 1098 UML Diagram 279 UML Pattern 484 UML Profiles 1470 UML Project In Enterprise Architect 29 Unique Constraint 1098 Unit Test Script 971 View 1096 Views Folder, Model View 149 Views Folder, Model View (Context Menu) 150 Views, Model View 149 Views, Model View (Context Menu) 150 Create Property Implementation Dialog 375 CreateModelType Enum Automation Interface 1644 Cross Reference Between EMX Files 683 Delete 351 Set For Element 351 Trace With Hierarchy Window 194 Use In Element 351 CSV Export 692, 695 Export From Relationship Matrix 462 Export From Rule Composer 562 Export State Machine Table To 1264 Import 692, 697 Import Requirement Hierarchies 580 Import Requirements 580 Preserve Hierarchy 692 Specifications 692 CTF In SDK 1549 Overview 937 Current Connector Toolbar 136 Current Element Toolbar 135 Cursor History Code Editor, Common 205 Custom Diagram 1310, 1311, 1312 Diagram Types 1514 Elements and Connectors 126
Group, Enterprise Architect UML Toolbox 126 Layout 236 Stereotypes 1468 Custom Background Create For Diagram, Image Manager 314 Custom Diagram Description 1308 Elements And Connectors 1308 Example 1308 Model 1308 Custom Language Create Templates For In Code Template Editor 1582 Settings, RTF Report Generation 1200 Custom Properties Dialog 338 For Connectors 338 For Elements 338 Custom Reference Delete 351 Set For Element 351 Trace With Hierarchy Window 194 Use In Element 351 Custom Tagged Values Create 1547 Custom Template Create From Project 591 Custom Tools External Applications 98 Custom View Add-In Model 1624 Customize Commands 92, 93 Diagram Appearance 318 Dialog 92 External Tools, Pass Parameters To 100 Keyboard 92 Keyboard Shortcuts 101 Menu Appearance 103 Menus 92 Options 92 RTF Language 1200 RTF Language (Legacy) 1211 Toolbar Option Appearance 104 Toolbars 92, 94 Tools 92, 96 Visibility Of Elements 358 Window 92 CustomProperties Collection Automation Interface, ElementFeatures Package 1695 CVS
1998-2009 Sparx Systems Pty Ltd
1795
Index Group, Enterprise Architect UML Toolbox 130 Index 1098 Introduction 1071 Primary Key Extended Properties 1086 Primary Key, Create 1085 Profile (UML) 1071 Set MySQL Table Type 1078 Set Oracle Table Properties 1078 Set Table Owner 1077 Set Table Properties 1075 Sorted Lookup Table 1098 Stored Procedure 1094 Trigger Operation 1098 Typical Tasks 1071 Unique Constraint 1098 Data Repository Adaptive Server Anywhere, Connect To 641 Connect To 588, 629 Create 617 MSDE Server, Connect To 644 MySQL, Connect To 629 Oracle 10g, Connect To 635 Oracle 11g, Connect To 635 Oracle 9i, Connect To 635 PostgreSQL, Connect To 638 Progress OpenEdge, Connect To 644 SQL Server, Connect To 632 Data Source Select 1113 Data Store Element (Data Flow Diagram) 529 Data Transfer Between Repositories 655 Compare Projects, Instructions 656 Compare Projects, Why? 656 Copy Packages Between Projects 657 Transfer Project Data 655 Upsize to MySQL 604 Data Type Add 817 Code 817 Conversion Procedures 1106 DBMS 1109 Definition 684 Delete 817 Extend 817 Modify 817 Programming Language 817 Database Compare Package DDL With 1102 Default 913 Design 1071
CVS Remote Repository 715 Version Control Options 715, 719 Version Control With Local Repositories
719
-DDashed Border On Element 352 Data Compare 656 Export 819 Import 820 Integrity 652 Integrity Check 652 Integrity, Run SQL Patches 654 Model Template 51 Data Breakpoints Clear 998 Debug Window 998 Set 998 Window 998 Data Distribution Service MDG Technology For, Enterprise Architect 11 Data Flow Concepts 529 Connector 529 Context Diagram 529 Diagram 529 MDG Technology 529 Relationship 529 Toolbox Page 529 Data Management Project Compare 92 Project Integrity 92 Project Transfer 92 Submenu (Tools Menu) 92 Data Modeling Check Constraint 1098 Compare DDL With Database 1102 Create Columns 1081 Create Table 1074 Data Model Diagram 1073 Data Type Conversion Procedures 1106 DBMS Conversion Procedure Package 1107 DBMS Data Types 1109 DDL, Generate 1100 Elements And Connectors 130 Foreign Keys 1088 Generate DDL 1100 Generate DDL For A Package 1102 Enterprise Architect User Guide
Index
1796
Enterprise Architect 5 Database Keys 1071 Invoke Methods, Workbench Window 1003 Model Template 51 Java 986 Modeling 1071 Java Applets In Internet Browsers 1018 Schema, Import Of 1071 Java Web Servers 1014, 1018 Set Default 133 Non Local Variables 995 Supported Types 1071 On Windows7 And Windows Vista 987 View 1096 Platforms 986 System Requirements 986 Database Administrator And Enterprise Architect 268 Toolbar 1008 Project Role 268 Under Windows Vista 986 Variables 1002 Database Engineering Submenu (Project Menu) 84 When UAC Is On 987 With Enterprise Architect 986 Database Modeling Enterprise Architect 5 Debug Session .NET Assembly 977 Database Operation Properties Dialog 1086 .NET CLR Versions 978 Debug C++ 974 Database Repository Connect To 593 Generate Sequence Diagram From 1020 Create 593 Java Setup 975 Set Up 593 Java, Attach To VM 976 Microsoft Native Setup 974 Database Table Select From ODBC Data Source 1114 Record Automatically For Thread 1026 Record For Method 1022 Datastore Element 1336 Record Manually For Thread 1026 Recording Markers 1027 Datatype Automation Interface Repository 1664 Set Up 973 Set Up For .NET 977 DBMS Conversion Procedures 1106 Set Up For Java 975 Data Type Conversion Procedures 1106 Set Up For Microsoft Native 974 Stack Auto Capture Marker 1027 DBMS Conversion Mapper 1107 Trace Marking 1027 Procedure 1107 Debug Window 991 Table Conversion Between DBMS Types 1107 Breakpoints Window 992 Data Breakpoints Window 998 DDL Compare With Database 1102 File Search Window 1006 Data Modeling 1100 Locals Window 994 Default Script Editor 913 Modules 1000 Display In Source Code Viewer 183 Output 1000 Generate For Package 1102 Recording History Window 997 Generate For Table 1100 Stack Window 995 Scripts And Generated Tables 1071 Watches Window 995 Transformation 1127 Debug Workbench Submenu 79 DDS MDG Technology For, Enterprise Architect 11 Debug Workbench Window Workbench 1001 Debug .NET 986 Debugger .NET With COM Interop Process 1012 Capture State Transitions, Options Tab 1032 Another .NET Process 1013 Create State Machine For Sequence Diagram Generation 1034 ASP .NET 1010 Enable On Windows7 And Windows Vista 987 Enable Capture Of State Transitions In Sequence Diagram 1033 Inspect Variables at Run-Time 1009
1998-2009 Sparx Systems Pty Ltd
1797
Index Project Management 829 Rate 829 Settings 829 Default Settings Options Dialog 218 Default Templates Override in Code Template Editor 1581 Default Toolbox Override In Profile 1511 Default Tools Toolbar 132 Defect Add 862 Create From Test Item 853 Element 862 Hide Stereotype Letter 862 Show Stereotype Letter 862 Define Author 796 Browser Behavior 219 Clients 802 Clipboard Image File Format 219 Email Exchange Server 219 File Directory 219 Foreign Key Name Template 1092 Home Web Site 219 Internet Search Engine 219 Resources 801 Roles 799 Run-Time Variable 1390 Stereotype As Metatype 1484 Stereotype Constraints 1476 Tasks Pane Contexts 1519 Tasks Pane Toolbox 1516 Validation Configuration For MDG Technology 1520 Define Menu Items Create Add-In 1584 Defined Environment Types 827 Delegate Connector 1423 Relationship 1423 Delete Category In Discussion Forum 247 Connectors 445 Connectors, Quick Start 35 Diagram (Single) From Project Browser 69 Diagrams (Multiple) From Project Browser 69 Diagrams From Project browser 296 Diagrams, Quick Start 35 Element Changes 858 Element Defects 858 Element From Diagram 357
Debugger Overview 965 Run-Time Inspection 1009 Start 988 Stop 988 System Requirements 986 To Sequence Diagram 1022 Using 988 Decision Element 1336 Decision Table Action Section 562 Business Rule Modeling 562 Condition Section 562 RuleBind Section 562 Deep Copy Of Diagram 299 Default Code Language, Set 133 Database 913 Database, Set 133 DDL Script Editor 913 Hours 829 Model Diagram, Cancel 86 Model Diagram, Set 86 Project Browser Behavior 58 Templates 1581 UML To XSD Mappings 1052 User Diagram, Cancel 86 User Diagram, Set 86 Default Appearance Background Color 360 Border Color 360 Border Thickness 360 Font Color 360 Of An Element 343 Of Element 360 Set For Profile Stereotype Objects 1481 Default Diagram Model, Cancel 86 Model, Cancel For 326 Model, Set 86 Model, Set For 326 User, Cancel 86 User, Set 86 Default Fonts Model 225 Set 225 User 225 Default Hours Estimation 829 Per Adjusted Use Case Point 829 Enterprise Architect User Guide
Index
1798
Delete Element from Model 357 Element From Project Browser 357 Element Issues 858 Element Tasks 858 Elements, Impact of Auditing 775 Elements, Quick Start 35 Instance Variable 1391 Item In Discussion Forum 247 Line Points 441 Linked Document 429 Linked Document Template 430 Locks 757 Menu Options 103 Package Attributes From Model Document 1229 Package In Project Browser 273 Packages From Model Document 1229 Packages, Quick Start 35 Post In Discussion Forum 247 Project Task 866 Relationship 387 Relationship Using Matrix 461 Reply In Discussion Forum 247 RTF Style Template 1162 Topic In Discussion Forum 247 Views 664 Workbench Variables 1002 Delete Selected Element(s) Menu Option (Edit Menu) 76 Deletion And Auditing 775 Delphi Code Generation 926 Import, Reverse Engineering 886 Language Options 926 Limitations 927 Modeling Conventions 954 Properties 927 Demonstration Of Enterprise Architect 42 Dependency Connector 1423 Relationship 1423 Relationship, Apply Stereotype 1424 Report 1220 Dependency Report In Traceability 792 Deploy Add-In 1585 MDG Technology From Add-In 1521 MDG Technology From File 1521
Deploy Script Create 979 Deployment Connector 1424 Diagram 1301 Elements and Connectors 122 Group, Enterprise Architect UML Toolbox 122 Model Template 52 Relationship 1424 View 661 Deployment and Rollout And Enterprise Architect 265 Project Role 265 Deployment Diagram Description 1301 Elements And Connectors 1301 Example 1301 Deployment Spec Element 1384 Derived Attribute 371 Symbol 371 Design Patterns 483 Design Master 651, 675 Create 676 Design Systems Using UML Enterprise Architect 5 Designate Driving Triggers Model State Machine For HDL 902 Desktop Edition Of Enterprise Architect 8 Upsize From 593 Desktop Tools Add 96 Configure 96 Customize 96 Destination Role 455 Developer And Enterprise Architect 261 Forward Engineering 261 Project Role 261 Reverse Engineering 261 Round-Trip Engineering 261 Visualise Package Arrangement 261 Device Element 1385 Diagram Activity, Description 1248 Add And Manage, Automation Interface Code Example 1732 Add Elements Via Context Menu 277
1998-2009 Sparx Systems Pty Ltd
1799
Index Converge Layout 289 Copy Image 86 Copy, Deep 299 Copy, Shallow 299 Create 279 Create Automatically 271 Create Custom Background, Image Manager 314 Create From Linked Document 429 Create Using Image Library 314 Creator 319 Custom 1308, 1310, 1311, 1312 Customize Appearance 318 Data Flow 529 Data Model, Example 1073 Database Schema 51, 1313 Define Child Type, Supported Attributes 1486 Delete (Multiple) From Project Browser 296 Delete (Single) From Project Browser 296 Delete Element From 357 Delete From Project Browser 69 Delete Multiple Elements From 357 Deployment 1301 Description 1313 Details Note 302, 321 Diagram To Package 31 Digraph Layout 287 Display Options 223 Diverge Layout 289 Divide Between Pages In RTF Reprt 321 Drag & Drop Elements From Project Browser 303 Drag Existing Package Onto 272 Duplicate 299 Element Appearance Options 322 Element Compartments, Show/Hide 322 Element Icons 422 Element Stereotypes, Show 322 Element, Copy 297 Element, Paste 297 Elements And Connectors 1313 Elliptical Layout 282 Example 1313 Extended 1247 Extended UML 1306 Fan Relations Layout 291 Feature Return Types, Show 323 Feature Stereotypes, Show 323 Features Appearance Options 323 Find In Project Browser 86, 87 Find Related Elements 307 Frame 223, 1338
Diagram Add Link To Forum Post 248 Add Profile Feature 469 Add Profile Object 469 Add To Project 279 Add To UML Model, Quick Start 31 Alias 321 Alternative Image For Element 312 Analysis 1306 Anti-Aliased Rendering 224 Anti-Aliased Text 224 Appearance Options 224 Appearance Options, Connectors 324 Appearance Options, Diagram Tab 321 Appearance Options, Element 322 Appearance Options, Features 323 Appearance Options, General 319 Appearance Options, Set 318 Appearance Options, Visible Class Members 325 Archimate 496 Attribute Details, Show 323 Auto Route Layout 292 Automatic Layout 293 Automatic Save 227 Automation Interface, Diagram Package 1711 Background Color 221 Background Color Gradient 224 Behavior Options 227 Behavioral, Overview 1247 Box Layout 285 BPEL 498 BPMN 525 Build 142 Business Interaction 1314 Business Modeling 1314 Business Process 47 Cancel Model Default 326 Center-Focussed Layout 282 Change Type 298 Circular Layout 282 Class 50, 1295 Class Features, Visibility 223 Collaboration 1289 Communication 1289 Component 51, 1304 Composite Structure 1298 Connector Appearance Options 324 Connector Notation, Show 324 Context 529 Context Menu 277 Context Menu, Project Browser 69 Enterprise Architect User Guide
Index
1800
Diagram Frame (Border) 1338 Hyperlink 1338 Increase Display Size 224, 274 Interaction 1264, 1280, 1289, 1291 Interaction Overview 1291 Layout Options 293 Layout Tool 280 Layout, Move Sections 332 Legend 326 Lock 86 Lock, Require User Lock 762 Lock, Security Off 317 Lock, User/Group Lock 761 Logical 1295 Maintenance 1311 Make All Elements Selectable 277 Make Model Default 326 Manage Display 142 Managing 278 MDG Technology 1247 Menu 86 Mind Mapping 533 Modeling With 274 Move Elements 352 Move Sections 332 Move, Impact On Element 1336, 1343, 1344, 1350 Move, Impact On Elements 34 Navigation And Selection Hotkeys 297 Neaten Layout 289 Note 302 Notes 319 Notes, Show/Hide 223 Object 1297 Open From Shortcut 73, 75 Open From Shortcut (Direct Definition) 73 Open Package In 300 Overview 1247 Package 1294 Page Setup 223 Pan And Zoom 204 Parametric, SysML 544 Paste 299 Per Page Layout 286 Place Related Elements On Current 307 Print From Project Browser 69 Print Page Footer 321 Print Page Header 321 Profile Attributes, PData and StyleEx 1515 Profiles 1514 Properties (Diagram Menu) 86
Properties Dialog - Connectors Tab 324 Properties Dialog - Diagram Tab 321 Properties Dialog - Elements Tab 322 Properties Dialog - Features Tab 323 Properties Dialog - General Tab 319 Properties Dialog, Visible Class Members, 325 Properties Note, Add 302 Properties, Set 318 Property Strings, Show 324 Qualifiers, Show 323 Redo Last Action 318 Reference 1338 Relationships, Show 324 Rename 297 Requirements 47, 1310 Robustness 1280, 1289, 1306, 1398, 1400, 1401 Rotate Image In RTF Report 321 RTF Document Options 321, 1157 RTF Report On Elements Linked From Other Packages 1157 Rule Model 560 Save 86 Save As Pattern 484 Save Automatically 227 Save Changes 277 Save Image Of 86 Save Profile 1482 Scale View 224 Schema Diagram 1313 Scroll Through From Diagram Toolbar 135 Sequence 1280 Set Page Size 330 Show As Element List 277 Show Element List As 146 Show Realised Interfaces For Class 316 Show/Hide Package Contents 273 Slideshow Model View 148 Slideshow, Model View 154 SoaML 535 SPEM 539 Spring Layout 288 State 1252 State Machine 1252 Stereotype 319 Structural, Overview 1293 Swimlanes 311 Swimlanes Matrix 308 SysML 543 SysML, Parametric 544 Tab Context Menu 141 Table Owner, Show 322
1998-2009 Sparx Systems Pty Ltd
1801
Index Add To MDG Technology 1499 DiagramLinks Automation Interface, Diagram Package 1714 DiagramObjects Automation Interface, Diagram Package 1715 Dialog Application Look 237 Attach To Process 1013 Build Script 968 Create Property Implementation 375 Database Operation Properties 1086 Paste Element 303 Recent Post Options 150 Select <Item> 394 Select Attribute Type 371 Set Attribute 1320 Set Feature 1320 Set Operation 1320 Slideshow Properties 154 Dictionary User (Spell Checker) 252 Diff Utility 776, 779 Differencing Facility 779 Output 781 With Baselines 779 Digraph Diagram Layout 287 Direct Substitution Field Substitution Macros, Code Template Syntax 1550 Direction Indicator Connector Label 316 Directory Structure Import, Reverse Engineering 888 Disable Add-Ins 1588 Archimate 496 BPEL 498 BPMN 525 Data Flow Diagrams 529 ICONIX 530 MDG Technologies 491 Mind Mapping 533 Security 746 SoaML 535 SPEM 537 SysML 543 Disconnect Controlled Package 688 Discussion Forum Access 243 Access From Shortcut 73, 75
Diagram Tabs 141 Tasks, General 278 Timing 1264 Toolbar 135 Traceability 791 Types 1247 Types, Built In 1515 Types, Custom 1514 UML 1247 Undo Last Action 318 Use Case 48, 1250 User Interface 1312 User Interface Design 1308 Version 319 View 142 View Next 318 View Previous 318 Visibility Indicators 323 Water Mark 224 What Is A? 1247 Working With 274 WSDL Binding 1064 WSDL Message 1064 WSDL Overview 1060 WSDL Port Type 1063 WSDL Service 1062 WSDL Types 1060 Z Order Elements 299 Zoom From Diagram Toolbar 135 Diagram Caption Bar Hide 79 Show 79 Diagram Frame 1338 Diagram Gate Element 1339 Diagram Image Copy To Clipboard 298 Copy To Disk File 297 Save To Disk File 297 Diagram Note Insert New From Toolbar 134 Diagram Only Report 1221 Diagram Package Automation Interface 1710 Diagram, Automation Interface 1711 DiagramLinks, Automation Interface 1714 DiagramObjects, Automation Interface 1715 Swimlane, Automation Interface 1717 SwimlaneDef, Automation Interface 1716, 1717 Diagram Type Enterprise Architect User Guide
Index
1802
Discussion Forum Access From Shortcut (Direct Definition) 73 Add New Category 245 Add New Post 246 Add New Topic 245 Add Object Link To Posts 248 Connections To Other Forums 249 Context Menu 244 Copy Path To Clipboad 249 Delete Item 247 Edit Item 247 Forum Connections 249 Forum Editor 248 Hyperlink To 1403 Icons 243 Introduction 243 Load Data When Required 249 Loading Behavior 249 Mark All Posts Unread 249 Options 249 Postings in Model Views 148 Preload 249 Reply To Post 247 Display Attributes, Inherited 300 Connector Properties, Shape Scripts 1534 Constraints, Inherited 300 Element Properties, Shape Scripts 1534 Full Screen 106 Inherited Attributes 377 Inherited Operation 405 Operations, Inherited 300 Requirements, Inherited 300 Tagged Values, Inherited 300 Display Options Connector 232 Diagram 223 Element 230 Link 232 Relationship 232 Display Size Diagram, Increase 224 Distributed Development Replication 674 XMI Import/Export 674 Diverge Diagram Layout 289 Dock Two Elements 343 Dock Windows Navigation Compass 173 Dockable Element Option 343
Windows 177 Docked Windows For Requirements 581 Document Enterprise Architect Content 1154 Exclude Packages 1154 HTML 1154 Linking 424 Projects 1154 Resource, RTF Generator (Enhanced) 1191 Rich Text Format 1154 RTF 1154 Single Element, RTF (Legacy) 1202 WSDL Element 1061 Document Artifact Element 424, 1385 Link Into RTF Report 424, 1164 Document Generation Enterprise Architect 5 Document Options RTF Generator, From Diagram (Enhanced) 1157 RTF Generator, From Diagram (Legacy) 1157 Documentation Elements 1224 Generate, Project Browser Option 60 Group, Enterprise Architect UML Toolbox 1224 HTML 1233 Rich Text Format 1155 RTF 1155 Documentation (Reports) Submenu (Project Menu) 81 Documentation Submenu Package Context Menu, Project Browser 65 Reports 65 DoDAF-MODAF MDG Technology For, Enterprise Architect 11 Domain Model Template 48 Organizational Relationships 48 Physical Units 48 Structure 48 DOORS, Telelogic MDG Link For, Enterprise Architect 11 Dotted Line Above Menu 176 Download GoF Pattern 486 Drag Element From Project Browser Onto Diagram 303 Objects From Project Browser Onto Diagram 303
1998-2009 Sparx Systems Pty Ltd
1803
Index
Drawing Methods Shape Scripts 1530 Drop Classifiers As Links 303 Classifiers As New Instances 303 Elements From Project Browser Onto Diagram 303 Objects From Project Browser Onto Diagram 303 DTD 684 Duplicate Diagram 299 UML Diagram 299 Duration Constraint 1436 Constraint Between Messages 1436 Observation 1436 Dynamic View 661
-EEA Lite Availability 11 Description 11 Edition 11 EA_Connect Add-In Event 1589 EA_Disconnect Add-In Event 1590 EA_FileClose Broadcast Events, Add-In Model 1595 EA_FileNew Broadcast Events, Add-In Model 1596 EA_FileOpen Broadcast Events, Add-In Model 1595 EA_GetCompartmentData Compartment Events, Add-In Model 1614 EA_GetMenuItems Add-In Event 1590 EA_GetMenuState Add-In Event 1591 EA_MenuClick Add-In Event 1592 EA_OnContextItemChanged Context Item Events, Add-In Model 1611 EA_OnContextItemDoubleClicked Context Item Events, Add-In Model 1612 EA_OnDeleteTechnology Technology Events, Add-In Model 1610 EA_OnEndValidation Model Validation Broadcasts, Add-In Model 1616 Enterprise Architect User Guide
EA_OnImportTechnology Technology Events, Add-In Model 1610 EA_OnInitializeTechnologies Technology Events, Add-In Model 1607 EA_OnInitializeUserRules Model Validation Broadcasts, Add-In Model 1616 EA_OnNotifyContextItemModified Context Item Events, Add-In Model 1612 EA_OnOutputItemClicked Add-In Event 1592 EA_OnOutputItemDoubleClicked Add-In Event 1593 EA_OnPostActivateTechnology Technology Events, Add-In Model 1608 EA_OnPostInitialized Broadcast Events, Add-In Model 1606 EA_OnPostNewAttribute Post-New Events, Add-In Model 1604 EA_OnPostNewConnector Post-New Events, Add-In Model 1603 EA_OnPostNewDiagramObject Post-New Events, Add-In Model 1604 EA_OnPostNewElement Post-New Events, Add-In Model 1603 EA_OnPostNewMethod Post-New Events, Add-In Model 1605 EA_OnPostNewPackage Post-New Events, Add-In Model 1606 EA_OnPostTransform Broadcast Events, Add-In Model 1607 EA_OnPreActivateTechnology Technology Events, Add-In Model 1608 EA_OnPreDeleteConnector Pre-Deletion Events, Add-In Model 1597 EA_OnPreDeleteDiagram Pre-Deletion Events, Add-In Model 1597 EA_OnPreDeleteElement Pre-Deletion Events, Add-In Model 1596 EA_OnPreDeletePackage Pre-Deletion Events, Add-In Model 1598 EA_OnPreDeleteTechnology Technology Events, Add-In Model 1609 EA_OnPreExitInstance Broadcast Events, Add-In Model 1602 EA_OnPreNewAttribute Pre-New Events, Add-In Model 1600 EA_OnPreNewConnector Pre-New Events, Add-In Model 1599 EA_OnPreNewDiagramObject Pre-New Events, Add-In Model 1600 EA_OnPreNewElement
Index
1804
EA_OnPreNewElement Pre-New Events, Add-In Model 1598 EA_OnPreNewMethod Pre-New Events, Add-In Model 1601 EA_OnPreNewPackage Pre-New Events, Add-In Model 1602 EA_OnRetrieveModelTemplate Broadcast Events, Add-In Model 1624 EA_OnRunAttributeRule Model Validation Broadcasts, Add-In Model 1618 EA_OnRunConnectorRule Model Validation Broadcasts, Add-In Model 1618 EA_OnRunDiagramRule Model Validation Broadcasts, Add-In Model 1618 EA_OnRunElementRule Model Validation Broadcasts, Add-In Model 1617 EA_OnRunMethodRule Model Validation Broadcasts, Add-In Model 1619 EA_OnRunPackageRule Model Validation Broadcasts, Add-In Model 1617 EA_OnRunParameterRule Model Validation Broadcasts, Add-In Model 1619 EA_OnStartValidation Model Validation Broadcasts, Add-In Model 1616 EA_QueryAvailableCompartments Compartment Events, Add-In Model 1613 EA_ShowHelp Add-In Event 1594 EAB File Export 739 Import 740 Model Branch File 739 EABase As Source 649 Project 41 Project File 591 EAExample File 590 EAP File As Project Database 588 Corrupt 661 Iterate Through, Automation Interface Code Example 1729 EASL Behavioral Model Templates 1570 Code Generation Macros, Behavioral Model 1570
Enterprise Architect Simulation Library 1570 EASL Collections Action 1571 Behavior 1571 Classifier 1571 Construct 1571 Node 1571 State 1571 State Machine 1571 Transition 1571 Trigger 1571 Vertex 1571 EASL Properties Action 1573 Argument 1573 Behavior 1573 Call Event 1573 ChangeEvent 1573 Classifier 1573 Condition 1573 Construct 1573 Edge 1573 EventObject 1573 Instance 1573 Parameter 1573 Primitive 1573 PropertyObject 1573 SignalEvent 1573 State 1573 StateMachine 1573 TimeEvent 1573 Transition 1573 Trigger 1573 Vertex 1573 EASL_GET Code Generation Macro, Behavioral Model 1570 EASLList Code Generation Macro, Behavioral Model 1570 ECF Value 827 Weighting 827 Eclipse MDG Integration For, Enterprise Architect 11 MDG Link For, Enterprise Architect 11 Edit Attribute Name, In-Place Editor 413 Element Name, In-Place Editor 413 Item In Discussion Forum 247 Linked Document Template 431 Linked Documents 427
1998-2009 Sparx Systems Pty Ltd
1805
Index Add To Favorites 340 Add To Profile 1471 Add To UML Model, Quick Start 31 Align 345 Align From Diagram Toolbar 135 Align Multiple 355 Alternative Image 312 Appearance, Context Menu Option 343 Appearance, Format From Toolbar 136 Apply Image From Clipboard 90 Archimate 496 Artifact 1377 Associated Files 389 Attributes Option 342 Author 380 Auto Counters 348 Auto Naming 348 Auto Numbering 348 Automation Interface, Element Package 1678 Autosize Group 303 Autosize Single 303 Background Color 221 Behavioral Diagram 1316 Boundary 1398 Boundary, Settings 1371 BPMN 525 BPMN, Change Appearance 528 Browser Window 191 Bulk Update 879 Business Rule 560 Cardinality (Multiplicity), Non-Displayable 382 Central Buffer Node 1329 Change 862, 863 Change Appearance, BPMN 528 Change Type 355 Changes 857 Changes, Add/Modify/Delete 858 Child Validation 668 Choice 1329 Class 1378 Code Engineering Menu 342 Collaboration 1381 Collaboration Occurrence 1382 Combined Fragment 1330 Compartments 831 Complexity 380 Component 1383 Composite 1400 Concurrency 382 Confirm As Parent 352 Connectors In Relationships Window 193 Constraint Note 1358
Edit Menu 76 Normal.RTF Template 1162 Operation Name, In-Place Editor 413 Pattern Default 486 RTF Style Template 1162 Test Details 844 Editions Business and Software Engineering 8 Corporate 8 Desktop 8 Floating Licence 8 Lite 11 Of Enterprise Architect 8 Professional 8 Standalone 8 System Engineering 8 Ultimate 8 Effort Attributes 1677 Automation Interface, Element Package 1677 Methods 1677 Effort Management 834 Effort Types Define 838 Global 838 Non-Global 834 EJB Entity Bean Transformations 1131 Session Bean Transformations 1131 Element Abort Edit Changes 88 Accept Edit Changes 88 Action 1317 Active 381 Activity 1324 Activity Final 1343 Activity Partition 1358 Activity Region 1360 Actor 1328 Add And Manage, Automation Interface Code Example 1730 Add Attribute, In-place Editor 418 Add Directly To Package 348 Add Link To Forum Post 248 Add New Item (Inline Features Menu Option) 88 Add Operation, In-place Editor 418 Add Supporting Diagrams and Elements 339 Add To Diagram 31 Add To Diagram From Project Browser 303 Add To Diagram Via Context Menu 277 Enterprise Architect User Guide
Index
1806
Element Constraint, Attach 88 Constraints 386 Context Menu 335 Context Menu, Add Submenu 339 Context Menu, Advanced 337 Context Menu, Features 342 Context Menu, Find Submenu 340 Context Menu, Project Browser 67 Continuation 1365 Continutaion 1365 Control 1400, 1401 Coordinates On Status Bar 138 Create Child Diagram 279 Create From Linked Document 429 Create From Maintenance Item 859 Create From UML Toolbox 108 Create In Diagram 346 Create Link From Project Browser 444 Create With Quick Linker 215 Create, Same Type As Previous 86 Custom Properties 338 Customize Visibility 358 Dashed Border On 352 Data Store 529 Datastore 1336 Decision 1336 Default Appearance 90 Default Element Template 364 Defect 862 Defects 857 Defects, Add/Modify/Delete 858 Delete 357 Delete Item From 88 Deployment Spec 1384 Details 382 Device 1385 Diagram Frame 1338 Diagram Gate 1339 Display Depth 299 Display Options 230 Dockable 343 Document Artifact 1385 Documentation 1224 Drag From Project Browser 303 Edit Attribute Keyword 415 Edit Attribute Scope 415 Edit Attribute Stereotype, In-place Editor 414 Edit Item, Tasks 412 Edit Name, In-Place Editor 413 Edit Operation Parameter Keyword 416 Edit Operation Parameter Kind 417
Edit Operation Scope 415 Edit Operation Stereotype, In-place Editor 414 Embedded Submenu 340 Embedded, Add 341 Endpoint 1340 Entity 1401 Entry Point 1340 Enumeration 1386 Event 1402 Exception 1341 Execution Environment 1386 Exit Point 1343 Expansion Region 1341 Export Data In CSV Format 695 Expose Interface 1387 Extended By Stereotype 1397 External 529 External Requirements 385 Feature 1403 Fill Color 221 Fill Color Gradient 224 Final (Leaf) 381 Find In Diagram Menu Options 67 Find in Diagrams 340 Find In Diagrams, Element List 146 Find In Project 161 Find In Project Browser 87, 340 Find Related 307 Fine Movement 332 Flow Final 1344 Font, Set 90 Fork 1345, 1347 Fragment 1330 General Settings 380 Generalizable, Advanced Settings 381 Get Project Custom Colors 362 Highlight Context 365 History 1349 Hyperlink 1403 Icon, Project Browser, User-Defined 1483 Icons On Diagram 422 Import Data In CSV Format 697 Include Linked In RTF Report 1157 Information Item 1387 Initial 1350 In-place Editor Options 412 In-Place Formatting 422 Insert Maintenance Feature 419 Insert New Feature (Inline Features Menu Option) 88 Insert Operation Parameter 418 Insert Related Elements 339
1998-2009 Sparx Systems Pty Ltd
1807
Index Note, Attach 88 Notes 195, 359 Nudge 90, 332 Object 1389 Occurrence 1352 Operations Option 342 Package 1392 Packaging Component 1407 Part 1392 Partition 1358 Paste As Link 77 Paste As New 77 Paste From Clipboard As Metafile 77 Paste From Project Browser 303 Phase 380 Phase, Update For Package 879 Place Related On Current Diagram 307 Port 1393 Postconditions 386 Preconditions 386 Primitive 1395 Process 529, 1408 Properties Dialog 379 Properties Dialog, Changes and Defects 864 Properties Dialog, General Settings 380 Properties Menu 336 Properties Window 178 Properties, As Attributes 375 Properties, Edit From Package 1294 Properties, Links 387 Properties, Tagged Values Tab 390 Pseudo-State 1256 Receive 1359 Receive Event 1402 Region 1360 Region, Expansion 1341 Region, Interruptible Activity 1353 Relationship Hierarchy For 194 Relationship, Delete 387 Relationship, Hide 387 Relationship, Show 387 Requirement 571, 1408 Requirements 383 Resize 356 Responsibilities 383 Root 381 Rule Task 557 Rules & Scenarios 194 Scenario 388 Screen 1409 Selectable, Multiple Elements 345 Selectable, Single Element 343
Element Insert Testing Features 421 Instance 1389 Interaction Occurrence 1352 InteractionUse 1352 Interface 1388 Internal Requirements 383 Interruptible Activity Region 1353 Issue 862 Issues 857 Issues, Add/Modify/Delete 858 Join 1345, 1348 Junction 1355 Keywords 380 Labels 316 Layout 345 Legend 326 Lifeline 1356 Link To Attribute Via Object 378 Linked, Convert To Local Copy 366 Lock Indicators 763 Lock, Require User Lock 762 Lock, User/Group Lock 761 Locked, Add Connector To 761 Maintenance 857 Make All Selectable/Unselectable 277 Make Non-Selectable, Multiple Elements 345 Make Non-Selectable, Single Element 343 Make Selectable, Multiple Elements 345 Make Selectable, Single Element 343 Managing 346 Master Document 1224 Match Size 345 Menu 87 Merge 1336 Merge Node 1356 Mind Mapping 533 Model Document 1224 Modeling With 333 Move Between Packages 354 Move By Increments 332 Move In Diagrams 352 Move, Impact Of Diagram 34 Multiple Selection 345 Multiple Update 879 Multiplicity, Displayable 381 N-Ary Association 1406 New 346 Node 1389 Non-Selectable, Multiple Elements 345 Non-Selectable, Single Element 343 Note (Constraint, Comment) 1358 Enterprise Architect User Guide
Index
1808
Element Send 1361 Send Event 1402 Sequence Diagram 1284 Sequence, Lifecycle 1282 Set Alternative Image 90 Set Cross References 351 Set Custom References 351 Set Default Appearance 360 Set Element Template Package 364 Set Feature Visibility 342 Set Font 344 Set Parent 349 Set Project Custom Colors 362 Shadow Color 221 Shape Script Properties 1534 Show Usage 350 Signal 1397 Size 356 SoaML 535 Specification 381 SPEM 539 State 1361 State Invariant 1365, 1367 State Lifeline 1364 State Machine 1369 State/Continuation 1365 Status 380 Status, Update For Package 879 Stereotype 380 Stored Procedure 1094 Structured Activity 1367 Sub-Activity 1324, 1367 Submachine State 1361, 1369 Superimposition 299 Synch 1370 Synchronize Stereotyped Tagged Values From Toolbox 108 Synchronize Stereotypes With Profile 470 System Boundary 1370 Table 1411 Tagged Values 390 Tasks 346, 857 Tasks, Add/Modify/Delete 858 Template Package 364 Template Parameters 382 Template, Default Element 364 Templates And Profiles 364, 466 Terminate 1372 Test Case 1410 Test Scripts Compartment 854 Text 359
Text Color 221 Toolbar 134 Transformation 1120 Trigger 1372 Type 337 UI Control 1411 UML 1316 Use Case 1373 Use Cross References 351 Use Custom References 351 Use Extras, Automation Interface Code Example 1733 User Interface 1411 Value Lifeline 1375 Version 380 Version, Update For Package 879 View 1096 View Properties (Inline Features Menu Option) 88 Visibility 382 Visibility Options 231 Work On From Element List 143 Work On From Toolbar 135 Working With 333 WSDL Binding 1064 WSDL Message 1064 WSDL Namespace 1060 WSDL Service 1062 WSDL, Document 1061 WSDL, Port Type 1063 Z Order 299 Element Context Menu Add Submenu, Project Browser 68 Element Features Operations 396 Element List Context Menu Options 146 Description 143 Generate RTF Report 1156 Options 146 Show As Diagram 146 Show Diagram As 277 Toolbar 146 Was Report View 143 Work On Elements 146 Element Package, Automation Interface Constraint 1677 Diagram 1675 Effort 1677 Element 1678 File 1684 Issue 1685
1998-2009 Sparx Systems Pty Ltd
1809
Index SPEM 537 Enable Diagnostic Messages Build Script, Sequence Diagram Recording Tab 985 Enable Filter Build Script, Sequence Diagram Recording Tab 980 Encrypt Password Prior To Release 7.1 Of Enterprise Architect 757 Encrypt Password (Repository) At Release 7.1 Of Enterprise Architect 73, 76 End Event, BPEL Create 505 Model 505 Types 505 End User License Agreement 15 Endpoint Element 1340 Enterprise Architect Add-In Model 1583 Alignment With UML 1245 And Deployment 265 And IDEs 5 Arrange Windows and Menus 173 Autohide Windows 175 Build Systems 5 CASE Tool 3 Code Engineering With 27 Connectors 1415 Create UML Project, Tutorial 29 Database Modeling 5 Debug 5 Demonstration 42 Design Systems 5 Dockable Windows 173, 177 Editions, Differences Between 8 Editor 913 End User License Agreement 15 Example Project File 590 Export Data In CSV Format 695 Feedback Pages 3 For Business Analysts 256 For Database Administrators 268 For Developers 261 For Implementation Managers 265 For Project Managers 263 For Software Architects 258 For Software Engineers 260 For Technology Developers 267 For Testers 264 Formal Statements 15
Element Package, Automation Interface Metric 1686 Requirement 1686 Resource 1687 Risk 1688 Scenario 1689 TaggedValue 1689 Test 1690 Element Templates And Profiles 1468 ElementFeatures Package, Automation Interface Attribute 1692 AttributeConstraint 1694 AttributeTag 1695 CustomProperties Collection 1695 Diagram 1691 EmbeddedElements Collection 1696 Method 1696 MethodConstraint 1698 MethodTag 1699 Parameter 1699 Partitions Collection 1700 Properties 1701 Property 1701 Transitions Collection 1702 Ellipse Diagram Layout 282 Email Access Within Enterprise Architect 172 Exchange Server, Define Default 219 Embedded Element Include When Pasting Composite 306 Maintain Layout In Pasting Composite 306 Embedded Elements Dialog 341 Element Context Submenu 340 Incorporate Inherited Properties 341 Window 341 EmbeddedElements Collection Automation Interface, ElementFeatures Package 1696 EMX File Cross References 683 File Import 683 Enable Add-Ins 1588 Archimate 496 Data Flow Diagrams 529 ICONIX 530 MDG Technologies 491 Mind Mapping 533 Security 746 SoaML 535 Enterprise Architect User Guide
Index
1810
Enterprise Architect Fundamental Processes 25 Generate Documentation 5 Generate Source Code 5 Glossary 1741 Help 13 How To Use 3 Import Data In CSV Format 697 In Action 42 Install 20 Interfaces For UML Modeling 40 Introduction 3 Key Features 7 Keyboard Shortcuts 238 License Agreement 15 Lite Edition 11 Main Menu 71 Manage Model Structure 5 Manage Requirements 5 MDA Transformation 5 Model Complexity 5 Model Requirements 5 Navigation Compass 173 Object Model, Introduction 1635 Online Resources 44 Online User Guide 3 Order 20 Performance, DBMS Connections 629, 632, 635, 638, 641, 644 Performance, In Auditing 766 Performance, WAN Optimizer 648 Predefined Search Definitions 168 Pricing And Purchasing 20 Professional Roles 255 Project Discussion Forum 243 Project Files, Open A Project 590 Project Roles 255 Project, What Is A? 589 Quick Start 24 Read-Only Edition 11 Register Full License 21 Replication Merge Rules 675 Reverse Engineer 5 SDK, Introduction 1467 Share Model Development 5 Software Product License Agreement 15 Spell Checking 251 Start 41 Start Page 44 Support 13, 14 Tear Off Menus 176 Tools And Features For UML Modeling 40
Trial Version 20 Tutorial, UML Modeling 24 UML 2.1 Support 5 UML Model Management 585 UML Modeling Tool 3 UML Modeling With 270 User Interface 42 Uses Of 5 Visualize Systems 5 Web Services Access 172 What Can I Do With It? 5 What is Enterprise Architect? 5 Working With 24, 25 Workspace Status Bar 138 Enterprise Architect Simulation Library Behavioral Model Templates 1570 EASL Code Generation 1570 EASL_GET Macro 1570 EASLList Macro 1570 Enterprise Architect Toolbox SystemC Group 957 Verilog Group 960 VHDL Group 961 Enterprise Architect UML Toolbox 108 Activity Group 120 Analysis Group 125 Class Group 116 Common Group 114 Communication Group 118 Component Group 121 Composite Group 118 Custom Group 126 Data Modeling Group 130 Deployment Group 122 Documentation Group 1224 Interaction Group 118 Maintenance Group 127 MDG Technology Groups 493 Metamodel Group 124 Object Group 117 Profile Group 124 Requirement Group 127 Shortcut Menu 112 State (Machine) Group 120 Timing Group 119 Use Case Group 116 User Interface Group 128 WSDL Group 129 XML Schema Group 129 Enterprise Java Beans 1131 MDG Technology For, Enterprise Architect Entity
11
1811
Index
Entity Create 1402 Element 1401 Entry Point Element 1340 Enumeration Automation Interface 1644 ConstLayoutStyles 1644 CreateModelType 1644 Element 1386 EnumRelationSetType 1645 Literal 1386 MDGMenus 1645 ObjectType 1646 PropType 1646 ReloadType 1647 XMIType 1647 Enumeration Elements Add To Profiles 1478 EnumRelationSetType Enum Automation Interface 1645 Environment Complexity Factor Definition 827 Estimate Project Size 828 Estimation 827 Value 827 Weighting 827 Eriksson-Penker Business Extensions 1306 Establish Port-Trigger Mappng Model State Machine For HDL 902 Estimation 813 Default Hours 829 Environment Complexity Factors 827 Of Project Factors 825 Of Project Size 828 Of Project Timescale 825 Technical Complexity Factors 825 Event Element 1402 Receive 1402 Send 1402 EventProperties Automation Interface Repository 1665 EventProperty Automation Interface Repository 1665 Examples And Tips Automation Interface 1638 Exception Element 1341 Exclamation Mark Blue 763 Red 763 Enterprise Architect User Guide
Exclude Package In RTF Report 1159 Exclusive Gateway Data-Based 512 Event-Based 512 Execution Environment Element 1386 Exit Menu Option (File Menu) 71 Exit Point Element 1343 Expansion Region Add 1343 Element 1341 Explorer Open 91 Export .EAB File 739 Code Templates 1579 Data 819 MOF To XMI 702 Profile 1481 Reference Data 819 Reference Data, Introduction 818 RTF Style Template 1162 State Machine Table To CSV 1264 To Rational Rose 679, 680, 684 To XMI 680 UML Profile 1481 Version Controlled Model Branch 739 XMI, Batch 689 Export Diagrams To RTF Document 1221 Expose Interface Element 1387 Extend Connector 1425 Relationship 1425 UML Toolbox Connectors 1513 UML Toolbox Elements 1512 Extended Elements 1397 Extended UML Diagrams 1306 Extending UML And Business Modeling In Enterprise Architect 465 And MDG Technologies 465 And Requirements Management In Enterprise Architect 465 With Enterprise Architect 465 With UML Patterns In Enterprise Architect 465 With UML Profiles In Enterprise Architect 465
Index
1812
Extending UML With UML Stereotypes In Enterprise Architect 465 Extension Points Use Case 1374 Extension Stereotypes 1397 External Element (Data Flow Diagram) 529 Requirements 385, 571 External Requirements Color Coded 577 External Tools Open 98 Pass Parameters To 100
-FFact Model Create 557 Fan Relations Diagram Layout 291 Favorites Add To Resources Window 182 Delete From Resources Window 182 Drag Objects Into 148, 152 Elements, Resources Window 182 Folder, Resources Window 182 Model Views Folder 148 View Properties In Resources Window 182 FDD Methodology 1403 Feature As Attribute 369 As Operation 396 Connect To 437 Disconnect From 437 Element 1403 Feature Driven Design Methodology 1403 Feature Visibility Attributes 300 Customize 300 Inherited 300 Operations 300 Set 300 Supress 300 Features Of Enterprise Architect 7 Feedback Pages 3 Field Substitution Macros Access Data from Attributes 1550 Access Data from Classes 1550 Access Data from Operations 1550 Access Data from Packages 1550 Access Data from Parameters 1550
Conditional Substitution 1550 Direct Substitution 1550 Fields and Conditions In Search 170 File .EAB 739 Element Package, Automation Interface 1684 Hyperlink To 1403 Menu 71 File Search List View 1006 Toolbar 1006 Tree View 1006 Window, Debugging 1006 Filters Add To Search 169 AND 161 Element, RTF Report 1195 OR 161 Other, RTF Report 1197 Search 161 Find Diagram In Project Browser 86, 87 Element In All Diagrams 340 Element In Diagrams, Element List 146 Element In Project Browser 87, 340 Submenu 340 Find In Diagram Element Context Menu, Project Browser 67 Find in Project Dialog, Simple 161 Menu Option (Edit Menu) 76 Results 156 Find In Project Browser Search Option 63 Floating Licence Version of Corporate Edition 8 Floating Toolbar Buttons Display 230 Floating Windows 173 Flow Final Element 1344 Folders, Debug Breakpoints 991 Recording Markers 991 Scripts 991 Threads 991 Font Set For Element Text 344 Fonts Set Model Default 225 Set User Default 225
1998-2009 Sparx Systems Pty Ltd
1813
Index Create 512 Exclusive (XOR) 512 Inclusive (OR) 512 Model In BPEL 512 Parallel (AND) 512 Types 512 General Types, Dialog 804 General Options Set For Project 219 General Ordering Sequence Diagram Messages 1438 Generalizable Elements 381 Generalization Sets 446 Generalization Link Implement Parent Operations 404 Override Parent Operations 404 Generalize Connector 1425 Relationship 1425 Generate BPEL 521 Global Element For Global ComplexTypes 1052 Global Element In XSD 1054 Report On Elements 143 Report On Project 143 Rich Text Format Report (Legacy) 1208 RTF Document from Resources (Enhanced) 1191 RTF Document From Resources (Legacy) 1210 RTF Report (Legacy) 1208 RTF Report From Element List 143 RTF Report From Virtual Document 1231 Sequence Diagram From Method 1022 Sequence Diagram In Debug Session 1020 WSDL 1067 XML Schema For Referenced Packages 1052 XML Schema, For Child Packages 1052 XSD 1052 Generate Code For Business Rule 565 From Activity Diagrams 898, 906 From Behavioral Models 898 From Interaction Diagrams 898, 905 From Sequence Diagrams 898, 905 From State Machine Diagrams 898 Generate HTML Report Dialog 1234 Generate RTF Document Element Filters Tab 1195
Footer Insert In RTF Template 1180 Footers Add To RTF Document 1217 Foreign Key Composite 1088 Constraint 1088 Create 1088 Description 1088 Name Template, Define 1092 Representation In Diagram 1088 Foreign Language Translation RTF Report Generation 1200 Fork Element 1345, 1347 Pseudo-State 1345, 1347 Fork/Join Element 1345 Formal Statements 15 Format Element Appearance From Toolbar 136 Toolbar 136 Forum Editor Discussion Forum 248 Forward Engineering Initial Code In Operations 401 Introduction 882 Forward Slash Derived Symbol 371 Forward Synchronization Delete Code From Features In Model 915 Fragment Element 1330 Frame Combine Windows In 173 Remove Windows From 173 Tabbed 173 Free Sorting On Project Browser 58 Full Screen Close 106 Display 106 Fully Qualified Tagged Value Show In Element Compartment 300 Function Macros, Code Template Syntax 1564
Index
1814
Generate RTF Document Other Filters Tab 1197 Project Constants, User Defined 1199 Generate RTF Documentation From Model Search 156 Generate RTF Documentation Dialog General Tab 1159 Options 1159 Templates Tab 1162 Generate RTF Report Update Links In Word 1219 Generate RTF Report Dialog Template Editor 1171 Word Substitution Tab 1200 Generate Source Code Enterprise Architect 5 Overview 892 Get Function Create As Attribute Property 375 Get Project Custom Colors For Element 362 Getting Started Add License Key 1459 Installing Enterprise Architect 20 License Information 1458 License Management 1457 Quick Start Guide To Enterprise Architect 24 Register Enterprise Architect 21 Registration Key 1458 Start Enterprise Architect 41 Upgrade Existing License 1462 With MOF 701 Global Element Generate For Global ComplexTypes 1052 Generate In XSD 1054 Import XSD 1056 Global Elements Import 1055 Global Risks 840 Glossary A 1742 Add Item, Glossary Dialog 874 B 1744 C 1745 D 1748 Delete Item, Glossary Dialog 874 Dialog 874 E 1750 F 1751 G 1752 H 1753 I 1754
J 1756 L 1757 M 1758 Modify Item, Glossary Dialog N 1760 O 1761 Of Terms 1741 P 1762 Q 1765 R 1766 Report 877 Report Output Sample 878 S 1768 T 1771 U 1773 V 1774 Glossary Detail Dialog Add Item 875 Modify Item 875 GoF Pattern Download 483, 486 Group Lock Identify Owner 764 Group Login 754 Group Of Four Pattern Download 483 Guillemets 481
874
-HHardware Description Languages Model State Machine For 902 HDL Model State Machine For 902 Header Insert In RTF Template 1180 Headers Add To RTF Document 1217 Help Add-In 104 Display On Add-Ins 104 File Formats 14 For Tagged Values 199 Index Tab 13 Menu 107 Release Date 14 Search Tab 13 Systems 13 Tasks Pane Topics 202 Topic, Hyperlink To 1403 Version Details 14
1998-2009 Sparx Systems Pty Ltd
1815
Index To Help Topics 1403 To Internet Facilities 1403 To Matrix Profiles 1403 To Model Search 1403
Hidden Submenu Create In Toolbox Profile 1510 Hide Code Execution (Project Menu) 83 Connectors 445 Connectors, All Diagrams 447 Connectors, Requirements Element 447 Connectors, Single Diagram 447 Diagram Caption Bar 79 Labels 448 Package Contents On Diagram 273 Project Browser 57 Relationship 387 Toolbox 108 Hide/Show Connector Labels 435 Connectors 435 Hierarchy Of Requirements 571 Requirement, Import Via CSV 580 Window 194 Window, In Traceability 792 Highlight Context Element 365 History Element 1349 Hotkeys Diagram Navigation And Selection 297 Hourly Rate 829 HTML And CSS Style Editor 1235 Documentation 1154, 1233 Generate HTML Report Dialog 1234 Locate Page By GUID 1233 Quick Start, Generate Report 1233 Report 1154, 1233 Report Templates 1235 Report, Create 1233 Style Template Fragments 1237 Style Templates, Reporting 1235 Template Fragments 1237 View Report 1233 Hyperlink As Sub Activities 1403 Diagrams 1403 Element 1403 In Linked Document 428 Insert In RTF Template 1181 Insert New From Toolbar 134 To Discussion Forum 1403 To Element From Linked Document 428 To External Files 1403 Enterprise Architect User Guide
-IIcon Attribute Private 61 Attribute Protected 61 Checked In Package 61 Checked Out Package 61 Namespace Root Package 61 Operation Private 61 Operation Protected 61 Project Browser, User Defined 1483 Version Controlled Package 61 ICONIX Disable 530 Elements 530 Enable 530 Layout 530 MDG Technology 530 Relationships 530 Roadmap 530 UML Toolbox Pages 530 Icons For Element On Diagram 422 For Toolbox Items, Assign 1511 IDE And Enterprise Architect 5 Image Add To MDG Technology 1505 Change Linked To Embedded 1212 Handling, RTF 1212 Print Scaled 329 Refresh 312 Scale To Page Size 329 Select Alternative 312 Store In Enterprise Architect 312 Use From Image Library 314 Image Library Import 314 Use 314 Image Manager Create Custom Diagram Background 314 Select Alternative Image For Element 312 Use 312 IME Code Editor 214 Implementation Manager
Index
1816
Implementation Manager And Enterprise Architect 265 Project Role 265 Implementation Report 1222 In Traceability 792 Target Types 1223 Implemented Interfaces Generate/Disable Methods For 915 Implements Connector 1449 Relationship 1449 Import .EAB File 740 ActionScript, Reverse Engineering 886 Binary Module, Reverse Engineering 889 C#, Reverse Engineering 886 C, Reverse Engineering 886 C++, Reverse Engineering 886 Code Templates 1579 Code, Select Language 133 Component Types 912 Data 820 Database Schema from ODBC 1111 DDL Schema from ODBC 1111 Delphi, Reverse Engineering 886 Directory Structure, Reverse Engineering 888 EMX files 683 From XMI 681 Global Elements 1055 Handle Classes Not Found 890 Image Library 314 Java, Reverse Engineering 886 MDA-Style Transformations 1122 MDG Technologies 489 MOF From XMI 702 Pattern 486 PHP, Reverse Engineering 886 Python, Reverse Engineering 886 Reference Data, Automatically 820 Reference Data, Introduction 818 Reference Data, Manually 820 Referenced XML Schema 1055 Requirements Via CSV 580 RTF Style Template 1162 RTF Template 1190 Scenario as Test 850 Scenarios From Package 850 Source Code, Reverse Engineering 885, 890 Technology Files 91 Test From Other Element 851 UML Pattern 486 UML Profiles 468
UML2 files 683 User ID From Active Directory 749 Version Controlled Model Branch 740 Visual Basic, Reverse Engineering 886 Visual Basic.Net, Reverse Engineering 886 WSDL 1068 XMI 690 XSD 1055 Import/Export Submenu (Project Menu) 86 Import/Export Submenu Package Context Menu, Project Browser 67 Imported Class Elements 1114 Inbuilt Stereotypes 1397 Include Connector 1426 Package In RTF Report 1159 Relationship 1426 Increase Text Display Size 177 Index Create in Data Modeling 1098 Unique 1098 What Is An? 1098 Indicator Locked Element 763 Visibility 323 Information Flow And Patterns 1426 Connector 1426 In Combination 1426 Realized 1428 Relationship 1426 Information Item Conveyed 1427 Element 1387 Inheritance Connector 1425 Relationship 1425 Inherited Attributes Display 377 Inherited Feature Show 300 Inherited Operation Display 405 Inherited Port Manage 1394 Initial Element 1350 Initial Code Operations Properties 401 Inline Features Submenu (Element Menu) 88
1998-2009 Sparx Systems Pty Ltd
1817
Index
Inline IME Option In RTF Editor 1184 Inline Sequence Elements Part And Port 1288 InnoDB BaseModel Script 604 In-place Editor Connector Options 448 Edit Attribute Keyword 415 Edit Attribute Name 413 Edit Attribute Scope 415 Edit Attribute Stereotype 414 Edit Connector Labels 448 Edit Element Name 413 Edit Operation Name 413 Edit Operation Parameter Keyword 416 Edit Operation Parameter Kind 417 Edit Operation Scope 415 Edit Operation Stereotype 414 Element Item, Tasks 412 Element Options 412 Insert Attribute To Element 418 Insert Maintenance Feature 419 Insert Operation Parameter 418 Insert Operation To Element 418 Insert Testing Feature 421 In-Place Formatting Elements 422 Input Method Editor Code Editor 214 Insert Attribute To Element, In-place Editor 418 Bookmarked RTF Into Word 1213 Boundary Element 1371 Diagram Properties Note 302 Linked Elements 339 Maintenance Feature In Element 419 Operation To Element, In-place Editor 418 Related Elements 339 Testing Features In Element 421 Install Enterprise Architect 20 Instance Define Behavior On Creation, Supported Attributes 1485 Paste Object As 303 Instantiated Template 1380 Integration Testing Display Details 845 Integrity Of Model Data 652 Of Project Data 652 Enterprise Architect User Guide
Integrity Check 652 Intellisense Code Editor, Common 208 In Script Editor 189 Keystrokes, Script Editor 189 Interaction Behavioral Aspects 407 Diagram 1264, 1289, 1291 Edit Parameters 407 Elements and Connectors 118 Group, Enterprise Architect UML Toolbox Parameter 407 Parameters, Define 408 Interaction Diagram Description 1280 Elements And Connectors 1280 Example 1280 Generate Code From 898, 905 Interaction Occurrence Element 1352 Interaction Operator Combined Fragment 1333 Interaction Overview Diagram Description 1291 Elements And Connectors 1291 Example 1291 InteractionUse Element 1352 Interface Element 1388 Expose Element 1387 Provided 1387 Required 1387 Set For Element 349 Source Code Generation 892 Intermediary Language MDA-Style Transforms 1143 Intermediate Event, BPEL Create 508 Model 508 Types 508 Internal Binding PIM to PSM 1117 Internal Editor 913 Internal Requirement Define 573 Properties 573 Internet Browser Applets Java, Debug 1018 Internet Facilities Hyperlink To 1403 Internet Search Engine
118
Index
1818
Internet Search Engine Access Within Enterprise Architect 172 Define Default 219 Interrupt Flow Connector 1429 Relationship 1429 Interruptible Activity Region Add 1354 Element 1353 Interval Bar Context Menu 1274 Timing Diagram Time Interval 1274 Introduction Copyright Notice 15 Enterprise Architect Key Features 7 Help File Formats 14 License Agreement 15 Order Enterprise Architect 20 Support 14 To Code Engineering 882 To Enterprise Architect 3, 5 To Enterprise Architect SDK 1467 To Forward Engineering 882 To Quick Linker 215, 1487 To Reverse Engineering 882 To Round-trip Engineering 882 To Shape Scripts 1523 To Synchronization 882 To Tagged Value Types 1542 To UML Objects 1316 Trademarks 18 Invocation Associate With Behaviors 407 Re-associate With Behaviors 407 Synchronize Arguments With Behavior Parameters 408 Invocations Modeling 407 Invoke Connector 116 Invoke Methods Debugger Work Bench Window 1003 Issue Create From Test Item 853 Elements And Requirements 582 Issue (Defect) Add 862 Automation Interface, Element Package 1685 Element 862 Hide Stereotype Letter 862 Show Stereotype Letter 862 Issue (Project)
Add 872 Delete 872 Model 869 Modify 872 Report, Generate 869 Issues Report Sample Output 873 Via Project Issues Tab 872 isUnique UML Property 453 Iterate Through EAP File Automation Interface Code Example
1729
-JJava Applets In Internet Browsers, Debug 1018 AspectJ Extensions 886 Code Generated From State Machine Diagram 899 Code Generation 929 Debug Session, Attach To VM 976 Debug, System Requirements 986 Import, Reverse Engineering 886 Language Options 929 Modeling Conventions 955 Modeling Conventions, AspectJ Extensions 956 Set Up Debug Session 975 Transformation, MDA-Style Transform 1133 Web Servers, Debugging 1014 JavaScript 185 JBOSS Server Configuration 1016 Server, Debugging 1014 Join Element 1345, 1348 Pseudo-State 1345, 1348 JScript 185 Junction Element 1355 JUnit Transformation MDA-Style Transform 1134
-KKey Combinations 238 Missing Combination 92 Key Bindings Code Editor, Common 210
1998-2009 Sparx Systems Pty Ltd
1819
Index MDG Technology 934 PHP 930 Python 930 SystemC 931 VB.NET 932 Verilog 932 VHDL 933 Visual Basic 934 Layout Custom, Save 236 Default Desktop 236 Diagram, Automatically 293 Diagram, Move Sections 332 ICONIX 530 Sequence Diagram 1283 Layout Diagram Auto Route Layout 292 Box Layout 285 Center Focussed Layout 282 Circular Layout 282 Converge Layout 289 Digraph Layout 287 Diverge Layout 289 Elliptical Layout 282 Fan Relations Layout 291 Main Procedure 280 Neaten Layout 289 Options 280 Per Page Layout 286 Spring Layout 288 Tool 280 Top-To-Bottom Circle 282 Layout Palette Window 280 Lazy Loading Enterprise Architect Performance 629, 632, 635, 638, 641, 644 For ASA Data Repository 641 For MSDE Server Data Repository 644 For MySQL Data Repository 629 For Oracle Data Repository 635 For PostgreSQL Data Repository 638 For Progress OpenEdge Data Repository 644 For SQL Server Data Repository 632 Legend Add To Diagram 326 Add To State Machine Table 1263 Edit 326 Element 326 Insert New From Toolbar 134 Remove From State Machine Table 1263 Style 326 Letter A
Key Features Of Enterprise Architect 7 Keyboard Accelerator Map 238 Missing Combination 92 Shortcuts 238 Shortcuts, Customize 101 Shortcuts, Reset 101 Keys Foreign, Definition 1071 Primary, Definition 1071 Keystore Troubleshooting 1461 Keywords For RTF Report (Legacy) 1211
-LLabel Alignment 316 Bold 316 Connector 316 Connector, Hide/Show 435 Direction Indicator 316 Element 316 Hide 316, 448 Menu 316 Set Color 316 Show 448 Show And Hide In Toolbox 110 Visibility 448 Label Visibility On Sequence Messages 1288 Labels Display Under Toolbar Icons 94 Language Adjust in RTF (Legacy) 1211 Adjust in RTF Report 1200 Create Properties As Attributes 375 Custom, Create Templates For In Code Template Editor 1582 For Spell Check 253 Macros 918 Language Options ActionScript 922 Ada 2005 922 C 923 C# 924 C++ 925 Code Generation 921 Delphi 926 Java 929 Enterprise Architect User Guide
Index
1820
Letter A Red 424, 426 Level Numbering For Requirements 571 Show In Project Browser 63 License Agreement 15 Information 1458 Management 1457 Lifecycle Of A Sequence Element 1282 Lifeline Element 1356 Objects In Sequence Diagrams 1284 Sequence Element, Termination 1282 Limit Auto Recording to Stack Frame Threshold Build Script, Sequence Diagram Recording Tab 984 Limitations Of XMI 684 Line Angles, Tidy 441 Bend At Cursor 441 Bezier 441 Straighten At Cursor 441 Style 441 Supress Segments 441 Line Points Add 441 Delete 441 Toggle 441 Line Selection Code Editor, Common 205 Link Add Constraint 438 Add Note 438 Create Between Elements 444 Create From Project Browser 444 Display Options 232 Paste Object As 303 Window 193 Link Notes To Element Feature 423 To Internal Documentation 423 Linked Document Create 424 Create Diagram From 429 Create Document Artifact 426 Create Element From 429 Create For UML Element 426 Delete 429 Edit 427
Editor Context Menu 427 Hyperlink 428 Introduction 424 Link Into RTF Report 424, 1164 Replace 429 To UML Element 426 Linked Document Template Add To MDG Technology 1508 Assign To Group 430 Create 430 Delete 430 Edit 431 Modify 430 Linked Element Convert To Local Copy 366 Linked Image Change To Embedded 1212 Linked Requirements In Rules & Scenarios Window 194 List Macro Code Template Syntax 1567 List Overrides RTF Reports 1185 Load Controlled Package 689 Report Templates (Legacy) 1208 Local Directories 917 Path Dialog 917 Paths 917 Pre/Post Conditions 1323 Local Variables Icons 994 Overview 994 Window 994 Locals Window 994 Lock Apply User Lock 762 Connector 757 Delete 757 Delete, User level 764 Diagram, Rigorous Security Mode 762 Diagram, Security Off 317 Diagram, User/Group Lock 761 Element 757 Element, Security Off 343 Identify Owner 764 Manage 757 Manage, User-Level 764 Model Elements, Rigorous Security Mode Model Elements, User/Group Lock 761
762
1821
Index Security Users 747 Maintenance Asterisk On Maintenance Window Tabs 857 Compartment, Element 831 Create Defect Item From Test 853 Dialog 811 Elements And Connectors 127 Feature, Insert In Element 419 Group, Enterprise Architect UML Toolbox 127 Items 857 Model Template 55 Of Element Properties 858 Problem Types 811 Script, Show In Compartments 860 Support 858 Testing Types 812 Workspace 857 Maintenance Diagram Description 1311 Elements And Connectors 1311 Example 1311 Maintenance Item Copy Between Categories 859 Create Element From 859 Move Between Categories 859 Make Same Submenu 90 Manage Add-Ins 1588 Baselines 777 Bookmarks 880 Diagrams 278 Elements 346 Inherited Ports 1394 Locks 757 MDG Technologies 491 Redefined Ports 1394 Requirements 581 UML Models 585 UML Models, Enterprise Architect Tasks 27 User-Level Locks 764 Views 661 Views, Add Views 662 Views, Delete 664 Views, Rename 663 Manage .EAP File Submenu (Tools Menu) 92 Managed C++ Modeling Conventions 952 Manifest Connector 1429 Relationship 1429
Lock Package, Rigorous Security Mode Package, User/Group Lock 761 Packages 762 Release User Lock 762 Standard Security Policy 761 View 757 View, User Level 764 Locked Element Add Connectors 761 Indicators 763 Logical Diagram Class Diagram 1295 Logical Model 50 Login As Different User (Security) 85 Group 754 Multiple Under One ID 754
762
-MMacro Branching 1567 Code Template Syntax 1567 Control 1567 CONVERT_NAMES 1150 CONVERT_TYPE 1150 Field Substitution, Code Template Syntax 1550 Function, Code Template Syntax 1564 Language 918 List 1567 PI 1567 Preprocessor 918 REMOVE_PREFIX 1150 Synchronization 1567 Tagged Value, Code Template Syntax 1563 Template Substitution, Code Template Syntax 1550 TRANSFORM_CLASSIFIER 1151 TRANSFORM_CURRENT 1150 TRANSFORM_REFERENCE 1148, 1151 Macros Behavioral Model 1570 Code Template Syntax 1550 EASL Code Generation 1570 EASL_GET 1570 EASLList 1570 SQL Search 165 Main Menu 71 Maintain Groups 754 Enterprise Architect User Guide
Index
1822
Manual Version Control With XMI 690 Mapper Data Type Conversion Procedures 1106 Masked Tagged Values Create 1547 Master Document Element 1224 Element, Create 1225 Generate Documentation 1231 Overview, Virtual Document 1224 RTF Bookmarks In 1224 Tagged Values 1225 Matrix Swimlanes 308 Matrix Profile Hyperlink To 1403 MDA Transform Add To MDG Technology 1505 MDA Transformation Built-In 1117 Enterprise Architect 5 Overview 1117 Project Menu Option 84 MDA-Style Transformation Built In Transformation 1125 C# Transformation 1125 Chaining Transformations 1121 Convert Names 1150 Convert Types 1150 Copy Information 1150 Create Connectors 1148 Cross References 1151 DDL Transformation 1127 Duplication Of Connectors 1148 EJB Transformations 1131 Import Transformations 1122 Intermediary Language 1143 Java Transformation 1133 JUnit Transformation 1134 NUnit Transformation 1136 Specify Classifiers 1151 Transform Connectors 1148 Transform Elements 1120 Transformation Templates 1123 Write Transformations 1143 WSDL Transformation 1138 XSD Transformation 1139 MDG Add-In For CORBA 11 Data Distribution Service 11 DDS 11
Department Of Defense Architecture Framework - Ministry Of Defence Architecture Framework 11 DoDAF-MODAF 11 DOORS 11 Eclipse 11 Enterprise Java Beans 11 Python 11 SysML 11 Systems Modeling Lanuages 11 TcSE 11 Teamcenter Systems Engineering, Siemens PLM 11 Testing 11 The Open Group Architecture Framework 11 TOGAF 11 Visio 11 Visual Studio 2005/2008 11 Visual Studio.NET 11 Zachman Framework 11 MDG Add-Ins Add-In Model 1625 MDG Events 1625 MDG_BuildProject 1626 MDG_Connect 1626 MDG_Disconnect 1627 MDG_GetConnectedPackages 1627 MDG_GetProperty 1628 MDG_Merge 1629 MDG_NewClass 1630 MDG_PostGenerate 1630 MDG_PostMerge 1631 MDG_PreGenerate 1632 MDG_PreMerge 1632 MDG_PreReverse 1633 MDG_Run_Exe 1633 MDG_View 1634 MDG Events Add-In Model 1625 MDG_BuildProject 1626 MDG_Connect 1626 MDG_Disconnect 1627 MDG_GetConnectedPackages 1627 MDG_GetProperty 1628 MDG_Merge 1629 MDG_NewClass 1630 MDG_PostGenerate 1630 MDG_PostMerge 1631 MDG_PreGenerate 1632 MDG_PreMerge 1632 MDG_PreReverse 1633 MDG_Run_Exe 1633
1998-2009 Sparx Systems Pty Ltd
1823
Index Department Of Defense Architecture Framework - Ministry Of Defence Architecture Framework 11 DoDAF-MODAF 11 Enterprise Java Beans 11 Python 11 SysML 11 Systems Modeling Languages 11 Testing 11 The Open Group Architecture Framework 11 TOGAF 11 Zachman Framework 11 MDG Technology Wizard Add Code Modules 1503 Add Diagram Type To Technology 1499 Add Images 1505 Add Linked Document Template To Technology 1508 Add MDA Transforms 1505 Add Pattern To Technology 1498 Add Profile To Technology 1497 Add RTF Report Template To Technology 1507 Add Scripts 1506 Add Tagged Value Types 1502 Add Task Panel To Technology 1501 Add Toolbox To Technology 1500 Create Technologies 1493 MDG_BuildProject Add-In Model 1626 MDG_Connect Add-In Model 1626 MDG_Disconnect Add-In Model 1627 MDG_GetConnectedPackages Add-In Model 1627 MDG_GetProperty Add-In Model 1628 MDG_Merge Add-In Model 1629 MDG_NewClass Add-In Model 1630 MDG_PostGenerate Add-In Model 1630 MDG_PostMerge Add-In Model 1631 MDG_PreGenerate Add-In Model 1632 MDG_PreMerge Add-In Model 1632 MDG_PreReverse Add-In Model 1633 MDG_Run_Exe
MDG Events MDG_View 1634 MDG Integration For Eclipse 11 TcSE 11 Teamcenter Systems Engineering, Siemens PLM 11 Visual Studio 2005/2008 11 MDG Link For DOORS, Telelogic 11 Eclipse 11 Visio 11 Visual Studio.NET 11 MDG Technology Access, Remote From Enterprise Architect 492 Activate 491 Active, Automatically Pinned Pages 110 And Resources Window 493 Code Generation 934 Create 1493 Create Toolbox Profile For 1509 Define Tasks Pane Profile 1516 Define Validation Configuration 1520 Deploy From Add-In 1521 Deploy From File 1521 Disable 491 Enable 491 Import 489 In SDK 1493 Include Custom Diagram Types 1514 Incorporate Model Template 1521 Introduction 489 Language Options 934 Link for Downloads 489 Manage 491 Toolbox Groups 493 MDG Technology (Integrated) Archimate 496 BPEL 498 BPMN 525 Data Flow Diagram 529 ICONIX 530 Mind Mapping 533 SoaML 535 SPEM 537 SysML 543 MDG Technology For CORBA 11 Data Distribution Service 11 DDS 11
Index
1824
MDG_Run_Exe Add-In Model 1633 MDG_View Add-In Model 1634 MDGMenus Enum Automation Interface 1645 Member Variables Inspect During Debugging 1009 Menu Add-Ins 104 Context 42 Customize Appearance 103 Delete Options 103 Diagram 86 Diagram Context 277 Edit 76 Element 87 Element Context 335 File 71 Help 107 Items, Define In Add-In 1584 Label 316 Main 71 Missing Option 92 More Windows (View Menu Option) 78 New Element Or Connector Context 277 Project 81 Rearrange 173 Set Animation 103 Set Shadowing 103 Settings (Project) 105 Show Grid (View Menu Option) 78 Snap to Grid (View Menu Option) 78 Tear Off 176 Toolbars (View Menu Option) 78 Tools 91 View 78 Visual Layouts (View Menu Option) 78 Visual Styles (View Menu Option) 78 Window 106 Menu Option (File Menu) Close Project 71 Exit 71 New Project 71 Open Project 71 Open Source File 71 Page Setup 71 Print 71 Print Preview 71 Print Setup 71 Reload Current Project 71 Save Project As 71
Merge Baseline With Current Model, Overview 776 Element 1336, 1356 Node 1356 Options, Compare Utility 782 Merge Packages Relationship 1448 Message Collaboration 1440 Colors In Communication Diagrams 1290 Communication 1439 Communication, Coloring 233 Communication, Create 1439 Connector 1429 Create On Timing Diagram 1443 Endpoint 1357 Group, Start New 1440 Label 1357 Move 1429 Recursion 1450 Relationship 1429 Scope 456 Self Message 1433 Self Message Call 1434 Sequence Communication 1440 Sequence Diagram, Examples 1435 Sequence Diagram, General Ordering 1438 Sequence Diagram, Self Message 1433 Sequence, Create 1430 Sequence, Label Visibility 1288 Sequencing 1440 Source and Target 456 Timing Diagram 1442 WSDL Diagram 1064 WSDL Element 1064 Message Angle Adjust With Duration Constraint 1436 Message Part WSDL Attribute 1067 Meta Object Facility Introduction 699 Metaclass Add To Profile 1471 META-INF Package 1131 Metamodel Elements and Connectors 124 Group, Enterprise Architect UML Toolbox 124 Method Add And Delete, Automation Interface Code Example 1732 Automation Interface, ElementFeatures Package 1696
1998-2009 Sparx Systems Pty Ltd
1825
Index
MDG Technology 533 Method Context Menu, Project Browser 69 Relationship 533 Delete If Not In Code In Reverse Synchronization Toolbox Page 533 915 MiscData 1678 Generate Sequence Diagram 1022 Model Implemented Interfaces 915 Activity, BPEL 514 Include Bodies In Model When Reverse Add To Project 588 Engineering 915 Automation Interface 1641 Record Debug Session For 1022 BPEL Process 501 Show Parameters On Diagram 325 BPEL, Create 499 Work With, Automation Interface Code Example Business Rules 554 1738 Connect To Version Control Using TFS 728 MethodConstraint Context Menu, Project Browser 61 Automation Interface, ElementFeatures Package Data Integrity 652 1698 Databases 1071 Methodology Default Diagram, Cancel 326 FDD 1403 Default Diagram, Set 326 Feature-Driven Design 1403 Default Fonts 225 MethodTag Delete Element From 357 Automation Interface, ElementFeatures Package Delete Multiple Elements From 357 1699 Fact, Create 557 Metric Gateway, BPEL 512 Automation Interface, Element Package 1686 Glossary 874 Metric Types Integrity Check 652 Define 839 Integrity, Run SQL Patches 654 Global 839 Issues 869 Non-Global 836 Package, Create Using Model Wizard 592 Metrics 813 Parametric, Create 544 Project Management Window 201 Pattern 592 Metrics And Estimation Pool, BPEL 519 Default Hour Rate 829 Remove Recent 45 ECF 827 Requirements 571 Effort Types 838 Root Node 61 Environment Complexity Factors 827 Sharing 673 For An Element 836 Shortcut 73 Metric Types 839 Shortcut (Capture Current Environment) 75 Risk Types 840 Shortcut (Direct Definition) 73 TCF 825 Structure 270 Technical Complexity Factors 825 SysML, Simulate 547 Microsoft Native Templates, Incorporate In Technology 1521 Set Up Debug Session 974 Transformation 1120 Microsoft Word UML, Manage In Enterprise Architect 27 Special Considerations 1215 WSDL 1058 Use In RTF Documentation 1212 WSDL, Binding 1064 Migration WSDL, Document 1061 From UML 1.3 652 WSDL, Message 1064 To UML 2.0 652 WSDL, Message Part 1067 Mind Mapping WSDL, Namepace 1060 Concept 533 WSDL, Port Type 1063 Diagram 533 WSDL, Port Type Operation 1066 Disable 533 WSDL, Service 1062 Elements 533 XSD 1042 Enable 533 Enterprise Architect User Guide
Index
1826
Model Branch .EAB File 739 Apply Version Control 738 Check In 736 Export 739 File 739 Import 740 Model Changes Auditing 766 Record 766 Model Context Menu Package Control Submenu, Project Browser 63 Model Document Add Packages As Attributes 1228 Change Package Sequence 1230 Delete Package Attributes 1229 Delete Packages 1229 Document Order 1230 Element 1224 Element, Create 1227 Generate Documentation 1231 Identify Search For 1227 Model Search Sequence 1230 Move Package Attributes Between Elements 1230 Overview, Virtual Document 1224 Select Template For 1227 Sequence of Model Document Elements 1230 Sequence of Package Attributes 1230 Tagged Values 1227 Model Driven Achitecture Overview 1117 Model Driven Generation Add-Ins 11 Model File Connect To ASA Data Repository 641 Connect To Data Repository 629 Connect To MSDE Server Data Repository 644 Connect To MySQL Data Repository 629 Connect To Oracle 10g Data Repository 635 Connect To Oracle 11g Data Repository 635 Connect To Oracle 9i Data Repository 635 Connect To PostgreSQL Data Repository 638 Connect To Progress OpenEdge Data Repository 644 Connect To SQL Server Data Repository 632 Create Access 2007 Repository 617 Create Adaptive Server Anywhere Repository 626 Create Data Repository 617 Create Model 591
Create MSDE Server Repository 628 Create MySQL Repository 618 Create Oracle 10g Server Repository 623 Create Oracle 11g Server Repository 623 Create Oracle 9i Server Repository 623 Create PostgreSQL Repository 623 Create Progress OpenEdge Repository 628 Create SQL Server Repository 620 Enterprise Architect Project Files 588 Set Up Adaptive Server Anywhere ODBC Driver 611 Set Up Database Model Files 593 Set Up MySQL ODBC Driver 606 Set Up ODBC Driver 605 Set Up PostgreSQL ODBC Driver 608 Set Up Progress OpenEdge ODBC Driver 615 Model Glossary Add Item, Glossary Detail Dialog 875 Add Item, Glossary Dialog 874 Delete Item, Glossary Dialog 874 Delete Item, Project Glossary Tab 875 Filter List, Project Glossary Tab 875 Glossary Dialog 874 Glossary Report 877 Modify Item, Glossary Detail Dialog 875 Modify Item, Glossary Dialog 874 Project Glossary Tab 875 Model Maintenance (.EAP) Compact Project 660 Introduction 660 Rename Project 660 Repair Project 661 Model Node Package Control Submenu, Project Browser 63 Model Pattern Introduction 46 Model Profile Apply 308 Save 308 Swimlanes Matrix 308 Zachman 308 Model Search Access From Add-In 160, 1588 Access From MTS File 160 Access From Shortcut 73, 75, 160 Access From Shortcut (Direct Definition) 73 Add Data Columns 156 Add Filters 169 Create Search Definition 165 Define In MTS File 1508 Export Search Definitions 161
1998-2009 Sparx Systems Pty Ltd
1827
Index Rule, Well Formedness 668 Rules 667 Submenu (Project Menu) 84 Well Formedness Rule 668 Model Validation Broadcasts Add-In Model 1615 EA_OnEndValidation 1616 EA_OnInitializeUserRules 1616 EA_OnRunAttributeRule 1618 EA_OnRunConnectorRule 1618 EA_OnRunDiagramRule 1618 EA_OnRunElementRule 1617 EA_OnRunMethodRule 1619 EA_OnRunPackageRule 1617 EA_OnRunParameterRule 1619 EA_OnStartValidation 1616 Model Validation Example 1620 Model Views Automatic Notification 785 Context Menu Options 150 Define In MTS File 1508 Define Search 152 Delete (Context Menu) 150 Delete (Toolbar) 149 Display Recent Postings 152 Enable Technology-Defined View 152 Export As XML 152 Favorites 148 Favorites Folder, Create (Context Menu) 150 Favorites Folder, Create (Toolbar) 149 For Requirement Change Management 582 Import As XML 152 Monitor Work Flow 785 Move Objects Between Views 152 Move Objects Into Favorites 152 My Views 148 Operations 152 Postings From Discussion Forum 148 Properties 152 Recent Discussions 148 Recent Post Options 150 Refresh (Toolbar) 149 Refresh Search 152 Root Node, Create (Context Menu) 150 Root Node, Create (Toolbar) 149 Slide Show, Run (Manual) 154 Slideshow 148 Slideshow Folder, Create (Toolbar) 149, 154 Slideshow, Automate 154 Technology-Defined 148 Toolbar Options 149 Use Objects In Views And Favorites 152
Model Search External Access 160 Generate RTF Documentation 156 Generate RTF Report 1156 Group Results 156 Hyperlink To 160, 1403 Introduction 156 Notes Options 156 Options 156 Process Results Of Search 156 Remove Data Columns 156 To Populate Model Views 152 Toolbar Options 156 Use 160 View 156 Model State Machine Active State Logic 902 Designate Driving Triggers 902 Establish Port-Trigger Mapping 902 For Hardware Description Languages 902 Model Template Business Process 47 Class 50 Component 51 Database 51 Deployment 52 Domain 48 Introduction 46 Logical 50 Maintenance 55 Physical 52 Project 55 Relational Database 51 Requirements 47 Testing 54 Use Case 48 Model Transformations Submenu (Project Menu) 84 Model Validation BPEL Violations 523 Configure 667 Define Configuration For MDG Technology 1520 Element Composition Rule 668 Object Constraint Language 665 OCL 665 OCL Conformance Rule 669 Of BPEL 523 Property Validity Rule 668 Rule, Element Composition 668 Rule, OCL Conformance 669 Rule, Property Validity 668 Enterprise Architect User Guide
Index
1828
Model Views View, Create (Context Menu) 150 View, Create (Toolbar) 149 Views 148 Views Folder, Create (Context Menu) 150 Views Folder, Create (Toolbar) 149 Window 148 Model Violations Examples 665 Model Wizard Add Model Package 592 Quick Start 29 Use To Create Model 591 Modeling Behavior Calls 407 Behaviors (General) 396 Invocations 407 The Business Process 550 With UML, Enterprise Architect Overview 26 Modeling Conventions 944 ActionScript 2 and 3 945 Ada 2005 946 ANSI C 947 C 947 C# 949 C, Object Oriented Programming 948 C++ 951 C++, Managed 952 C++/CLI Extensions 953 Delphi 954 Java 955 Java AspectJ Extensions 956 Object Oriented Programming in C 948 PHP 956 Python 957 SystemC 957 VB.NET 958 Verilog 960 VHDL 961 Visual Basic 962 Models Collection 1648 Model-View-Controller Pattern 1401 ModelWatcher Automation Interface Repository 1666 Modify Element Changes 858 Element Defects 858 Element Issues 858 Element Tasks 858 Linked Document Template 430 Project Task 866 Relationship Using Matrix 461
RTF Style Template (Legacy) 1208 Tagged Values 198 Modules Window, Debug 1000 MOF Export To XMI 702 Getting Started 701 Import From XMI 702 Introduction 699 Primitive 1395 Monitor Events 785 Progress 785 Work Flow 785 More Windows Submenu 79 Mouseovers Code Editor, Common 208 Move Attributes Between Elements 367 Connectors 439 Connectors, Quick Start 34 Diagram Sections 332 Diagrams, Quick Start 34 Elements Between Packages 354 Elements By Increments 90, 332 Elements In Diagrams 352 Elements, Quick Start 34 Internal Responsibility To External Requirement 574 Maintenance Item Between Categories 859 Nudge Elements 90 Objects Between Packages 354 Operations Between Elements 367 Package Contents Up Or Down 58 Packages, Quick Start 34 Submenu 90 Test Between Categories 849 MS Jet Database As Model Repository 593 MS Word Update RTF Report Links 1219 Use In RTF Documentation 1212 MS Word Tables Apply Styles 1218 Manipulate 1218 Resize 1218 MSDE Server Data Repository, Connect To 644 Server Repository, Create New 628 Upsize To 598 MTS File
1998-2009 Sparx Systems Pty Ltd
1829
Index
MTS File Advanced Options 1508 Create 1508 Incorporate Model Search 1508 Incorporate Model View 1508 Working With 1508 Multi-page Diagram Print 329 Multiple Login Under One User ID 754 Multiple Select Items From Project Browser 304 Multiple Stereotype Restrict Application Of 1484 Multiplicity 48 Connector, Source Role 453 Connector, Target Role 455 Of Connector 816 Of Element 816 Of Element, Displayable 337, 381 Of Element, Non-Displayable 382 MVC Pattern 1401 MyISAM BaseModel Script 604 MySQL Create Repository 618 Data Repository, Connect To 629 ODBC Driver, Set Up 606 Table Type, Set 1078 Upsize To 604
-NName Template Foreign Key 1092 Primary Key 1085 Namespace Clear 897 Dialog 897 Explanation 897 List 897 Locate In Project Browser Root 897 Root Package Icon 61 Set 897 WSDL Element 1060 Naming Format Camel Case 1150 Pascal Case 1150 Spaced 1150 Underscored 1150
897
N-Ary AssociationElement 1406 Navigate Diagram 204 Navigation And Selection Hotkeys, For Diagram 297 Navigation Compass 173 Neaten Diagram Layout 289 Nested Version Control Packages 706, 711 Nesting Connector 1445 Relationship 1445 New Code Sections Add To Existing Features 943 New Project Menu Option (File Menu) 71 New Search Query 165 New Structured Activity Dialog 1367 Node Element 1389 Non-Selectable Element 343 Normal.RTF Template, RTF Template Editor 1162 Notation Co-Region 1430 Process Modeling 551 Note Add To Link/Connector 438 Element 1358 Element, Create 359 For Attribute 195 For Connector 195 For Diagram 195 For Element 195 For Operation 195 Insert New From Toolbar 134 Link To Element Feature 423 Link To Internal Documentation 423 Tab 195 Window 195 Notelink Connector 1446 Insert New From Toolbar 134 Relationship 1446 Nudge Elements 90, 332 Numbered Sections In RTF Reports 1185 Numbering Levels Apply 1185 RTF Reports 1185
Index
1830
Numbering Levels Use 1185 Numbering List RTF Reports 1185 Numeric Range Generator Timeline Element States 1271 NUnit Transformation MDA-Style Transform 1136
-OObject Appearance, Options 230 Attributes 1144 Classes 1144 Classifiers 393 Columns 1144 Connector 387 Create From Attribute 378 Definition 1144 Element 1389 Elements And Connectors 117 Group, Enterprise Architect UML Toolbox Instance 1389 Links 387 Move Between Packages 354 Multiplicity 453 Operations 1144 Packages 1144 Parameters 1144 Properties 379, 1144 Relationships 387 Scenario 388 State, Set 1391 Tables 1144 Transformation 1144 Type 1144 Type, Change For Element 355 Object Constraint Language Model Validation 665 Model Validation Rules For Conformance Object Diagram Description 1297 Elements And Connectors 1297 Example 1297 Object Flow Connector 1446 In Activity Diagram 1446 In State Machine Diagram 1446 Multiple 1446 Relationship 1446
117
669
Selection Behavior 1446 Simple 1446 Transformation Behavior 1446 With Action Pins 1446 Object Oriented Programming C Code Generation For UML Model 948 Limitations 948 ObjectType Enum Automation Interface 1646 Occurrence Connector 1448 Element 1352 Relationship 1448 OCL Model Validation 665 OCL Constraints Attribute 669 Element 669 Feature 669 Model Validation Rules for Conformance 669 Relationship 669 ODBC Data Modeling 1100 Driver, Set Up 605 ODBC Data Source Select 1113 Offline Checkout 743 Version Control 743 OLE DB Provider Microsoft For Oracle 635 Oracle Provider 635 Online Resources Access From Tasks Pane 202 Submenu 107 Open External Tools 98 Package From Project Browser 271 Package Within Diagram 300 Report in Microsoft Word 1212 Open Project Menu Option (File Menu) 71 Open Repository Automation Interface Code Example 1729 Open Source Directory Element Code 89 Open Source File Menu Option (File Menu) 71 Operation Add To Element, In-place Editor 418 Appearance 396 As Action 1318
1998-2009 Sparx Systems Pty Ltd
1831
Index Views Of Project 142 Visual Styles/Themes 237 Options Dialog ActionScript 922 Ada 2005 922 Appearance Options 224 Attribute/Operation Specifications 915 C 923 C# 924 C++ 925 Communication Message Coloring 233 Connector Settings 232 Delphi 926 Diagram Behavior 227 Diagram Settings 223 General Settings 219 Introduction 218 Java 929 Links Settings 232 MDG Technology 934 Object Appearance 230 Object Appearance, Default Fonts 225 Object Appearance, Element Visibility 231 PHP 930 Python 930 Sequence Diagram Options 228 Standard Colors 221 SystemC 931 VB.NET 932 Verilog 932 VHDL 933 Visual Basic 934 XML Specifications 235 Oracle Package, Create 1084 Sequence 1081 Sequence Options, DDL For Packages 1102 Sequence Options, DDL For Table 1100 Tables, Set Properties 1078 Tables, Tagged Values 1078 Temporary Table 1078 Upsize To 600 Oracle 10g Data Repository, Connect To 635 Server Repository, Create 623 Oracle 11g Data Repository, Connect To 635 Server Repository, Create 623 Oracle 9i Data Repository, Connect To 635 Server Repository, Create 623 Order
Operation Behavior Description, Show In Diagram 400 Behavior, Initial Code 401 Connect To 437 Constraints 402 Context Menu, Project Browser 69 Copy Between Elements 366 Definition 396 Dialog, Behavior Tab 400 Dialog, General Tab 397 Dialog, Post Tab 402 Dialog, Pre Tab 402 Disconnect From 437 Display Inherited Operation 405 Edit Name, In-Place Editor 413 Edit Parameter Kind 417 Edit Scope 415 Edit Stereotype, In-place Editor 414 Element Feature 396 Fast Create 397 Implement Interface Operations 404 Implement Parent Operations 404 In Project Browser 396 Inherited, Show 300 Introduction 396 Move Between Elements 367 Of State Element, Behavior 400 Overide Interface Operations 404 Override Parent Operations 404 Parameter Keyword, Edit 416 Parameter, By Reference 410 Parameter, Insert In Element 418 Parameters, Define 408 Private, Icon 61 Properties, Behavior 400 Properties, General 397 Properties, Initial Code 401 Properties, Postconditions 402 Properties, Preconditions 402 Protected, Icon 61 Show On Diagram 300 Tagged Values, Add 403 WSDL Port Type Operation 1066 Operators On Constraints 1035 Option Read-Only, For Enterprise Architect 11 Options Compare Utility 780 Element Visibility 231 Project Views 142 Reset For A Class 935 Enterprise Architect User Guide
Index
1832
Order Enterprise Architect 20 Package Contents 58 Other Windows Show/Hide From Toolbar 138 Toolbar 138 Outline Red 763 Output Window, Debug 1000 Output Window Context Menu 202 Override Default Toolbox In Toolbox Profile 1511 Implement Parent Operations 404 Parent Operations 404 Override Attribute Initializer 377
-PPackage Add And Manage, Automation Interface Code Example 1730 Add Element Directly 348 Add To Diagram From Toolbox 271 Add To Project Browser 271 Add To UML Model, Quick Start 30 Apply Version Control To Model Branch 738 As RTF Bookmark 1213 Automation Interface 1641 Automation Interface Repository 1666 Batch Export To XMI 689 Batch Import From XMI 690 Body, For Oracle 1084 Check In 736 Check Out 736 Comparison, Example 781 Configuration 686 Configure For Version Control 734 Context Menu, Project Browser 63 Control, Menu 685 Control, Remove 688 Controlled 734 Copy Between Projects 657 Create Diagram 279 Create Oracle Packages 1084 CSV Import/Export Specification 692 Delete In Project Browser 273 Element 1392 Existing, Drag Onto Diagram 272 Export 685 Export Version Controlled Model Branch 739
Hide Contents On Diagram 273 Icon Overlays 61 Import 685 Import Version Controlled Model Branch 740 Load 689 Lock 762 Lock, Require User Lock 762 Lock, User/Group Lock 761 META-INF 1131 Modeling With 271 Move 34 Move Element Between 354 Move Objects Between 354 Nested in Version Control 711 Open From Diagram 300 Open From Project Browser 271 Phase, Update 879 Profile 1470 Rename 272 Resynchronize Package Version Control Status 742 Review Version Control History 741 Save 688 Save Profile 1482 Show Contents On Diagram 273 Specification, For Oracle 1084 Status, Update 879 Synchronize Contents 896 Tasks 271 Update Contents 896 Validate Version Control Configuration 735 Version Control 704 Version, Update 879 Working With 271 XML 685 Package Context Menu Add Submenu, Project Browser 65 Build And Run Submenu, Project Browser 66 Code Engineering Submenu, Project Browser 65 Contents Submenu, Project Browser 67 Documentation Submenu, Project Browser 65 Import/Export Submenu, Project Browser 67 Package Control Submenu Model Node Context Menu, Project Browser 63 Package Diagram Description 1294 Elements And Connectors 1294 Example 1294 Package Import Connector 1448
1998-2009 Sparx Systems Pty Ltd
1833
Index
Package Import Relationship 1448 Package Merge Connector 1448 Relationship 1448 Package Scenarios Import As Test Scenarios 850 Package Structure BPEL 499 Packaging Component Element 1407 Page Footer, Print On Diagram 321 Header, Print On Diagram 321 Setup, Menu Option (File Menu) 71 Size, Set For Diagram 330 Pan Diagram View 331 Pan And Zoom Diagram 204 Window 204 Paragraph Numbering In RTF Style Template Editor 1178 Parameter Activity 408 Automation Interface, ElementFeatures Package 1699 Behavior 408 Behavior Call Arguments 410 Behavior, Tagged Values 409 Behavioral, Edit 408 Behavioral, Extend 408 Behavioral, Reassign 408 Behavioral, Set 408 Behavioral, Synchronize Call Argument With 408 Behavioral, Synchronize Invocation Argument With 408 Dialog 408 Interaction 408 Kind Inout, By Reference 410 Operation 408 Operation, By Reference 410 Reference 410 Show Details On Diagram 325 Parameter Kind Edit for Element Operation 417 Parameterized Classes (Templates) 1380 Parametric Diagram 544, 547 Model, Create 544 Simulate SysML Model 547 Enterprise Architect User Guide
Parent Confirm Element As Parent 352 Set For Element 349 Parse Source Code Files In Viewer 183 Part Add Property Value 1392 Element 1392 Represent On Sequence Diagram 1288 Partial Class Generate 895 Partition Activity 1358 Docking 1358 Element 1358 Horizontal 1358 Vertical 1358 Partitions Collection Automation Interface, ElementFeatures Package 1700 Pascal Case Naming Format 1150 Password Administrator Change 759 Administrator Set 759 Security, Change 747 User Change 759 Password Encryption Prior To Release 7.1 Of Enterprise Architect 757 Password Encryption (Repository) At Release 7.1 Of Enterprise Architect 73, 76 Paste Activity As Action 306 Activity As Link 306 Composite Element 306 Diagram Into Package 299 Element From Project Browser 303 Element On Diagram 297 Multiple Items As Children 304 Multiple Items As Instances 304 Multiple Items As Links 304 Multiple Items From Project Browser 304 Object As Child 303 Object As Link 303 Object As New Instance 303 Paste Element Dialog 303 Paste Elements As Link 77 As New 77 From Clipboard As Metafile 77 Menu Option (Edit Menu) 76
Index
1834
Paste Elements Submenu (Edit Menu) 77 Patches SQL, Run 654 Pattern Action, Modify 486 Actions 484 Add To MDG Technology 1498 Create From Diagram 484 Default, Change 486 Design 483 GoF 483 GoF, Download 486 Group of Four 483 Import Into Model 486 In Resources View 484 Model-View-Controller 1401 MVC 1401 Save 484 Save From Diagram 484 PDATA Diagram Profile Attribute Values 1515 Element Attribute In MiscData, Object Model 1678 People As Project Resources 801 Assign To Changes 865 Assign To Defects 865 Dialog 796 Settings 796 Per Page Diagram Layout 286 Performance Of Enterprise Architect 629, 632, 635, 638, 641, 644, 648, 766 Permission List User Security 755 PHP Code Generation 930 Import, Reverse Engineering 886 Language Options 930 Modeling Conventions 956 Physical Model 52 PI Macro Code Template Syntax 1567 PIM Internal Bindings 1117 Pin Connector End Point 136 Connector Start Point 136 Toolbox Pages 110 Pkg Import Connection 1448
Relationship 1448 Pkg Merge Connector 1448 Relationship 1448 Platform Naming Conventions 1150 Platform Specific Model 1117 Platform-Independent Model 1117 Pool (BPEL) Create 519 Model 519 Port Add To Element 1394 Element 1393 Inherited 1394 Redefined 1394 Represent On Sequence Diagram 1288 Port Type WSDL Diagram 1063 WSDL Element 1063 Port Type Operation WSDL 1066 Position Elements 90 Post Add To Discussion Forum 246 Delete In Discussion Forum 247 Edit In Discussion Forum 247 Reply To In Discussion Forum 247 PostgreSQL Data Repository, Connect To 638 ODBC Driver, Set Up 608 Repository, Create 623 Upsize To 599 Post-New Events Add-In Model 1603 EA_OnPostNewAttribute 1604 EA_OnPostNewConnector 1603 EA_OnPostNewDiagramObject 1604 EA_OnPostNewElement 1603 EA_OnPostNewMethod 1605 EA_OnPostNewPackage 1606 Pre/Post Conditions Constraints 1323 Local 1323 Notes 1323 On Actions 1323 Precede Connector 116 Predefined Tag Type Assign To Stereotype 1473 Define 1473 Predefined Tagged Value Type Filters 1542
1998-2009 Sparx Systems Pty Ltd
1835
Index Define 811 Process BPEL, Properties 501 Element 551, 1408 Element (Data Flow Diagram) 529 Model Template 47 Modeling 47 Process Modeling Notation 551 Professional Edition Of Enterprise Architect 8 Upsize From 593 Profile Add Attribute To Diagram 469 Add Connector To Diagram 469 Add Element To Diagram 469 Add Elements 1471 Add Enumeration Elements 1478 Add Metaclasses 1471 Add Operation To Diagram 469 Add Shape Script 1479 Add Stereotypes 1471 Add To MDG Technology 1497 And Element Templates 364, 466, 1468 Constraints 1476 Create 1470 Diagram, Create 1514 Elements And Connectors 124 Example File 475 Export 1481 Group, Enterprise Architect UML Toolbox 124 Import 468 Import From XML 466, 1468 Package 1470 References 472 Save From Diagram 1482 Save From Package 1482 Set Default Appearance Of Stereotype Objects 1481 Stereotype 1470, 1487 Stereotypes 466, 1468 Swimlanes Matrix 308 Tags 1472 Tasks Pane, Create 1516 Toolbox 1509 Use 467 Work With 1470 Zachman 308 Profile Connector Add To Diagram 469 Profile Element Add To Diagram 469 Progress OpenEdge
Predefined Tagged Value Type Reference Data 1545 Structured 1542 Syntax 1542, 1545 Pre-Deletion Events Add-In Model 1596 EA_OnPreDeleteConnector 1597 EA_OnPreDeleteDiagram 1597 EA_OnPreDeleteElement 1596 EA_OnPreDeletePackage 1598 Pre-New Events Add-In Model 1598 EA_OnPreNewAttribute 1600 EA_OnPreNewConnector 1599 EA_OnPreNewDiagramObject 1600 EA_OnPreNewElement 1598 EA_OnPreNewMethod 1601 EA_OnPreNewPackage 1602 Preprocessor Macros 918 Preserve Hierarchy CSV Specification 692 Primary Key Complex 1085 Create 1085 Description 1085 Extended Properties 1086 Name Template, Define 1085 Simple 1085 SQL Server, Non-Clustered 1086 Primitive Element 1395 MOF 1395 Print Diagram (Single) From Project Browser 69 Diagrams (Multiple) From Project Browser 69 Menu Option (File Menu) 71 Multi-page Diagrams 329 Page Footer On Diagram 321 Page Header On Diagram 321 Preview, Menu Option (File Menu) 71 Project Issues 870 Scaled Image 329 Setup, Menu Option (File Menu) 71 Task List 866 Print Preview Display 72 Multiple Pages 72 Private Key Add 1459 Private Model And Version Control Using TFS 728 Problem Type Enterprise Architect User Guide
Index
1836
Progress OpenEdge Data Repository, Connect To 644 ODBC Driver, Set Up 615 Server Repository, Create 628 Upsize To 597 Project Administration, Security Permissions Author 796 Browser 57 Clean 652 Clients 802 Compact .EAP File 660 Comparison, Why? 656 Configure 591 Data Integrity 652 Data, Transfer 655 EABase 41 Estimation 825 Explorer 57 File, EABase 591 Glossary 179, 874 Integrity Check 652 Integrity, Run SQL Patches 654 Issues 179, 869 Items, Add Via Toolbar 132 Menu 81 Metrics 825 Model Template 55 Open Existing 588 Recover 652 Remove Recent 45 Rename .EAP File 660 Repair Project .EAP File 661 Resources 801 Roles 799 Share On Network Drive 674 Share, DBMS Repository 673 Share, Network Drive 673 Share, Replication 673 Spell Checking 251 Statistics, View 81 Structure 270 Tasks 37, 179 Timescale Estimation 825 Toolbar 132 Transfer 604 Use The Model Search 160 View 57 What Is A? 589 Project Branch Check In 736 Project Browser
746
Attribute Context Menu 69 Collapse Contents 67 Default Behaviour 58 Diagram Context Menu 69 Element Context Menu 67 Element Context Menu, Add Submenu 68 Exclamation Marks 763 Expand Contents 67 Free Sorting 58 Hide And Show 57 Icon Overlays 61 Icon, User-Defined 1483 Introduction 57 Method Context Menu 69 Model Context Menu 61 Model Node, Package Control Submenu 63 Move Items Within 57 Open Package 271 Operation Context Menu 69 Order Package Contents 57 Package Context Menu 63 Package Context Menu, Add Submenu 65 Package Context, Build And Run Submenu 66 Package Context, Code Engineeiing Submenu 65 Package Context, Contents Submenu 67 Package Context, Documentation Submenu 65 Package Context, Import/Export Submenu 67 Reload Current Package 67 Reset Sort Order 67 Selective Collapse of Packages 57 Show Level Numbering 63 Show Stereotypes 58 Toolbar 60 Version Control Indicators 704 Views 57 Project Constant RTF Reports 1199 Project Custom Colors Get For Element 362 Set For Element 362 Project Discussion Forum Access 243 Add New Category 245 Add New Post 246 Add New Topic 245 Add Object Link To Post 248 Connections To Other Forums 249 Copy Path To Clipboad 249 Delete Item 247 Edit Item 247
1998-2009 Sparx Systems Pty Ltd
1837
Index Resource Allocation 834 Resource Report 837 Resources 201 Risk Management 835 Risk Types 840 Risks 201 Technical Complexity Factors 825 Toolbar 201 Window 201, 833 With Enterprise Architect 824 Project Manager And Enterprise Architect 263 Project Estimation 263 Project Role 263 Resource Management 263 Risk Management 263 Project Role And Enterprise Architect 255 Business Analyst 256 Database Administrator 268 Deployment and Rollout 265 Developer 261 Implementation Manager 265 Project Manager 263 Software Architect 258 Software Engineer 260 Technology Developer 267 Tester 264 Project Search Add Filters 169 Conditions 170 Create Search Definition 165 Fields 170 Search Definitions 161 Simple 161 Project Settings Configure (Settings Menu) 105 Project Task Add 866 Delete 866 List 866 Modify 866 Tab, Print List 866 ProjectIssues Automation Interface Repository 1670 ProjectResource Automation Interface Repository 1671 Properties Automation Interface, ElementFeatures Package 1701 Connector, Menu Section 433 Dialog, Element 379
Project Discussion Forum Forum Connections 249 Forum Editor 248 Icons 243 Introduction 243 Load Data When Required 249 Loading Behavior 249 Mark All Posts Unread 249 Options 249 Preload 249 Reply To Post 247 Project Factor Calibration 825 Project File Create 588 Example 590 Open 590 Project Glossary Add Item, Glossary Detail Dialog 875 Add Item, Glossary Dialog 874 Delete Item, Glossary Dialog 874 Delete Item, Project Glossary Tab 875 Filter List, Project Glossary Tab 875 Glossary Dialog 874 Glossary Report 877 Modify Item, Glossary Detail Dialog 875 Modify Item, Glossary Dialog 874 Tab 875 Project Indicators Risk Types 840 Project Interface Automation Interface 1718 Project 1718 Project Issue Add 872 Delete 872 Dialog 869 Modify 872 Print List 870 Record 869 Report, Via Project Issues Dialog 872 Report, Via Project Issues Tab 872 Tab 870 Project Management Asterisk On Window Tabs 833 Default Hours 829 Effort Management 834 Effort Types 838 Environment Complexity Factors 827 Introduction 824 Maintenance 857 Metric Types 839 Metrics 201, 836 Enterprise Architect User Guide
Index
1838
Properties Element 379 Element Context Menu 336 Element, Associated Files 389 Element, Connectors 387 Element, Constraints 386 Element, Details 382 Element, External Requirements 385 Element, General 380 Element, Generalizable 381 Element, Internal Requirements 383 Element, Links 387 Element, Relationships 387 Element, Requirements 383 Element, Tagged Values Tab 390 Extend For Requirements 578 Object 379 Of Classifiers, Composite Structure Diagram 1300 Of Requirements, Extended 578 Of Requirements, Standard 576 Requirement, Display On Diagram 578, 579 Window (Element) 178 Properties Note Diagram 302 Properties, EASL Action 1573 Argument 1573 Behavior 1573 Call Event 1573 ChangeEvent 1573 Classifier 1573 Condition 1573 Construct 1573 Edge 1573 EventObject 1573 Instance 1573 Parameter 1573 Primitive 1573 PropertyObject 1573 SignalEvent 1573 State 1573 StateMachine 1573 TimeEvent 1573 Transition 1573 Trigger 1573 Vertex 1573 Property Automation Interface, ElementFeatures Package 1701 Property Validation Attribute 668
Element 668 Feature 668 Relationship 668 Property Value Part, Add To 1392 PropertyType Automation Interface Repository 1672 PropType Enum Automation Interface 1646 Proxy (Shortcut) File 73 Pseudo-State Elements 1256 Fork 1345, 1347 In State Machine Diagram 1256 Join 1345, 1348 PSM 1117 Purchase Enterprise Architect 20 Python Code Generation 930 Import, Reverse Engineering 886 Language Options 930 MDG Technology For, Enterprise Architect Modeling Conventions 957
11
-QQualified Association 1396 Qualifier Association Property 1396 Query Builder Search Definition 165 Query Methods In Shape Scripts 1534 Quick Add Tagged Values 392 Quick Linker 436 Arrow 215 Connector Names 1491 Create Connector 217 Create Element And Connector Default Settings, Hide 1491 Definition Format 1488 Element Names 1491 Example 1489 Introduction 215, 1487 Options 215 Quick Start Add Connectors To UML Model Add Diagram To Package 31
215
32
1839
Index Of Signal 1397 Record Automatic Debug Session For Thread 1026 Debug Session 1022 Manual Debug Session For Thread 1026 Thread, Automatic 1022 Thread, Manual 1022 Record Arguments To Function Calls Build Script, Sequence Diagram Recording Tab 982 Record Calls To Dynamic Modules Build Script, Sequence Diagram Recording Tab 983 Record Calls To External Modules Build Script, Sequence Diagram Recording Tab 982 Recording History Window 997 Recording Markers Folder 991 Set In Debug Session 1027 Stack Auto Capture Marker 1027 Recover Controlled Package 690 Project 652 Rectangle Notation Element Menu Option 337 For Use Cases 1375 Recursion Connector 1450 Message 1450 Relationship 1450 Recursive Builds 979 Red Border 763 Exclamation Mark 763 Letter A 424, 426 Object Outline 317, 343, 763 Triangle 880 Redefined Port Manage 1394 Redefinition Connector 124 Redo Last Action, Diagram Edits 318 Re-entrancy In Add-Ins 1586 Reference Automation Interface 1640 Automation Interface Repository 1672 Reference Data 795 Cardinality (Multiplicity) 816
Quick Start Add Diagram To UML Model 31 Add Element To Diagram 31 Add Element To UML Model 31 Add Package to UML Model 30 Auditing 767 Create A UML Project In Enterprise Architect 29 Define Connector Properties 33 Define Element Properties 33 Delete UML Model Components 35 Generate HTML Report 1233 Generate RTF Report 1156 Guide To Enterprise Architect 24 Move Project Components 34 Project Tasks 37 Save Project Changes 36 View HTML Report 1233
-RRational Rose And XMI 679 Export To 684 Rational Software Architect Models 683 Rational Software Modeler Import *.emx Files 681 Import *.uml2 Files 681 Read-Only Options For Enterprise Architect 11 Realization Connector, Quick Generation Of 579 Realization Link Implement Parent Operations 404 Override Parent Operations 404 Realize An Information Flow 1428 Connector 1449 Relationship 1449 Realized Interfaces For Class, Show On Diagram 316 Receive Element 1359 Event 1402 Recent Discussions Concerning Model View Items 148 Recent Post Options Dialog 150 Recent Postings Display 152 Reception Definition 1397 Enterprise Architect User Guide
Index
1840
Reference Data 795 Clients 802 Constraint Status Types 807 Constraint Types 806 Estimation 813 Export 819 Export, Introduction 818 General Types 804 Import Automatically 820 Import Manually 820 Import, Introduction 818 Maintenance 811 Metrics 813 People 796 Problem Types 811 Project Author 796 Requirement Types 808 Resources 801 Roles 799 Scenario Types 809 Status Types 804 Stereotypes 814 Tagged Value Types 815 Testing Types 812 UML Types 814 Reference Data Tagged Value Type 1545 Reference Data Tagged Values Create 1546 Referenced XML Schema Import 1055 Refresh Diagram 741 Image 312 Project 741 View Of Shared Model 741 Region Composite State 1255 Concurrent Substate 1255 Element 1360 Expansion, Element 1341 Interruptible Activity, Element 1353 On Composite State 1362 State Machine 1255 Register Add-Ins 1465 Enterprise Architect 21 Registration Key In License Information 1458 Related Elements Find 307 Insert With Context Menu 339 Place On Current Diagram 307
Relational Database Model Template 51 Relationship Activity Edge 1429 Aggregate 1417 Application 124 Archimate 496 Assembly 1418 Associate 1418 Association 1418 Association Class 1419 BPMN 525 Communication 1421 Communication Path 1420 Compose 1421 Composite Aggregation 1421 Connector 1421 Control Flow 1422 Create Using Relationship Matrix 461 Data Flow 529 Delegate 1423 Delete 387 Delete Using Relationship Matrix 461 Dependency 1423 Dependency, Apply Stereotype 1424 Deployment 1424 Display Options 232 Extend 1425 Extension (Profile Toolbox) 124 Generalization 1425 Generalize 1425 Generalize (Profile Toolbox) 124 Hide 387 Implements 1449 Include 1426 Information Flow 1426 Inheritance 1425 Interrupt Flow 1429 Manifest 1429 Matrix, In Traceability 792 Message 1429 Mind Mapping 533 Modify Using Relationship Matrix 461 Nesting 1445 Notelink 1446 Object Flow 1446 Occurrence 1448 Package Import 1448 Package Merge 1448 Pkg Import 1448 Pkg Merge 1448 Realize 1449
1998-2009 Sparx Systems Pty Ltd
1841
Index Replication 677 REMOVE_PREFIX 1150 Rename Diagram 297 Package 272 Project .EAP File 660 Views 663 Re-Order Messages 1440 Repair Project .EAP File 661 Replace Linked Document 429 Replica Create 676 Synchronize 676 Upgrade 677 Replication Change Collisions 675 Disable 675 Introduction 675 Merge Rules 675 Remove 677 Using 675 Reply To Post In Discussion Forum 247 Report Dependency 1220 HTML 1154, 1233 Implementation 1222 Open In Microsoft Word 1212 Project Issues, Via Project Issues Dialog 872 Project Issues, Via Project Issues Tab 872 Rich Text Format 1154, 1155 RTF 1154, 1155 Testing Details 853 Report View Now Element List 143 Reporting Dependency 583 Implementation 583 Requirements 583 Repository Adaptive Server Anywhere, Create 626 Attributes 1648 Author Collection 1661 Automation Interface 1648 Client Collection 1662 Collection Class 1663 Connect To 593 Create 593 Datatype 1664
Relationship Recursion 1450 Redefinition 124 Representation 1451 Represents 1451 Role Binding 1450 Self Message 1433 Show 387 Tagged Value (Profile Toolbox) 124 Trace 1452 Transition 1452 Usage 1454 Use 1454 Visibility 444 Window, Context Menu 193 Relationship Matrix Access 458 Access From Shortcut 73, 75 Access From Shortcut (Direct Definition) Create Relationship 461 Delete Relationship 461 Export To CSV 462 Introduction 457 Link Direction 459 Link Type 459 Locate Elements 463 Modify Relationship 461 Open 458 Options 460 Print Matrix 462 Print Preview 462 Profiles, Save 462 Review Elements 463 Set Element Type 458 Set Link Direction 459 Set Link Type 459 Set Source Package 460 Set Target Package 460 Relationships Window Context Menu 307 Reload Diagram 741 Model (Shared) 741 Project 741 View 741 Reload Current Project Menu Option (File Menu) 71 ReloadType Enumeration Automation Interface 1647 Remove Package Control 688 Recent Project 45 Enterprise Architect User Guide
73
Index
1842
Repository Encrypt Password 73, 76 EventProperties 1665 EventProperty 1665 Methods 1648 ModelWatcher 1666 MSDE Server, Create 628 Open, Automation Interface Code Example 1729 Package 1666 Package, Automation Interface 1647 Progress OpenEdge, Create 628 ProjectIssues 1670 ProjectResource 1671 PropertyType 1672 Reference 1672 Set Up Database 593 Stereotype 1673 Task 1674 Term 1675 Transfer Data Between 655 Use Extras, Automation Interface Code Example 1735 Representation Connector 1451 Relationship 1451 Represents Connector 1451 Relationship 1451 Require User Lock Apply User Lock 762 Release User Lock 762 Require User Lock Policy 747 Requirement Aggregation 579 Analysis 47 And Level Numbering 571 And Use Cases 571 Auditing 582 Automation Interface, Element Package 1686 Autonumbering 576 Baselines 582 Change Management 582 Changes 582 Color Code Status 577 Connect On Diagram 579 Connect Through Relationship Matrix 579 Connectors 579 Convert From Responsibility 574 Create In Diagram 576 Create In Project Browser 576 Dependency Report 583
Docked Windows 581 Element 571, 1408 Element Template 578 Element, Hide/Show Connectors 447 Elements And Connectors 127 Extend Properties, Default Format 578 External 385, 571 Fast Generate Realization Connector 579 Functional 383 Gather 569 Group, Enterprise Architect UML Toolbox 127 Hide Stereotype Letter 576, 1408 Hierarchies 571 Implementation Report 583 Import Via CSV 580 In Rules & Scenarios Window 194 Inherited, Show 300 Internal 383, 573 Internal, Import As Test 852 Issues 582 Linked 194 Manage 581 Model 571 Model Template 47 Model Views 582 Modeling 47 Non-Functional 383 Profile 578 Properties, Display On Diagram 579 Properties, Extended 578 Properties, Standard 576 Realization 579 Report Template 583 Reporting 583 Requirements Management 47 Review 581 Show Stereotype Letter 576, 1408 Stability 383 Status, Color Coded 577 Tagged Values 578 Tagged Values, Display 579 Template 47 Trace Through Connectors 579 Trace Use Of 582 User-Defined Attributes 578 View 581 What Is A? 569 Windows For Tracing Use 582 Windows For Viewing 581 Requirement Type Define 808 Requirements Diagram
1998-2009 Sparx Systems Pty Ltd
1843
Index
Requirements Diagram Description 1310 Elements And Connectors 1310 Example 1310 Requirements Management And Enterprise Architect 569 Enterprise Architect 5 In Example Model 569 Overview 569 Requirements Modeling Enterprise Architect 5 Reserved Names In Shape Scripts, Connectors 1537 In Shape Scripts, Elements 1537 Reset Options For A Class 935 For All Classes 935 Source Code Language 60, 935 Reset Sort Order In Project Browser 34 Resize Element 356 Element By Increments 356 Multiple Elements 356 Resolve Change Conflicts Between Replicas 678 Resource Allocation 834 And Tasking Details Dialog 837 Automation Interface, Element Package Report 837 Resource Document RTF Generator (Enhanced) 1191 RTF, Batch Generate Reports 1191 Resource Management 833 Effort Types 838 Metric Types 839 Risk Types 840 Resources Define 801 Documents 180 Favorites Folder 180, 182 Matrix Profiles 180 MDG Technologies 180 Project Management Window 201 Scripts 180 Templates 180 UML Patterns 180 UML Profiles 180 Window 180 Window, And MDG Technologies 493 XSL Stylesheets 180 Enterprise Architect User Guide
1687
Resources View Of Patterns 484 Responsibility Compartment, Element 831 Define 573 Import As Test 852 Internal 383 Move To External Requirement 574 Result End Event, BPEL 505 Resynchronize Package Version Control Status 742 Reverse Connector 448 Reverse Engineer Enterprise Architect 5 Source Code 884 Reverse Engineering And Auditing 775 And MDG Link 889 Directory Structure 888 Eclipse 889 Handling Classes Not Found During Import 890 Import ActionScript 886 Import Binary Module 889 Import C 886 Import C# 886 Import C++ 886 Import Delphi 886 Import Java 886 Import PHP 886 Import Python 886 Import Source Code 885, 890 Import Visual Basic 886 Import Visual Basic.Net 886 Initial Code In Operations 401 Introduction 882 ODBC Data Sources 1111 Source Code, Import Directory Structure 888 Synchronize Model And Code 890 Visual Studio.NET 889 Reverse Synchronization Delete Attribute If Not In Code 915 Delete Method If Not In Code 915 Delete Model Aggregations For Attributes Not In Code 915 Delete Model Associations For Attributes Not In Code 915 Include Method Bodies In Model 915 Review Package Version Control History 741 Requirements 581
Index
1844
Rich Text Format Copy Bookmark To Clipboard 65 Document 1155 Report 1155 Rich Text Format Generator Enhanced 1159 Legacy 1201 Rich Text Format Report Apply Filter (Legacy) 1204 Diagram Format (Legacy) 1205 Diagram Only 1221 Dialog (Legacy) 1201, 1203 Element-Level 1156 Exclude Elements (Legacy) 1205 Exclude Objects (Legacy) 1205 Exclude Package 1159 Generate (Enhanced) 1156 Generate (Legacy) 1201, 1208 Generate From Element List 143 Generate, Quick Start 1156 Include Glossary (Legacy) 1206 Include Issues (Legacy) 1206 Include Package 1159 Include Tasks (Legacy) 1206 Object Selections (Legacy) 1207 Options (Legacy) 1206 Save As RTF Document (Enhanced) 1191 Save As RTF Document (Legacy) 1210 Set Main Properties (Legacy) 1203 Single Element (Legacy) 1202 Templates, Load (Legacy) 1208 Through Element List 1156 Through Model Search 1156 Wizard (Legacy) 1203 Rich Text Notes Formatting 139 In Legacy RTF Generator Reports 1201 Keyboard Shortcuts 139 Toolbar Options 139 Rigorous Security Mode Apply User Lock 762 Release User Lock 762 Risk Automation Interface, Element Package 1688 Management 835 Risk Types Define 840 Global 840 Non-Global 835 Risks Project Management Window 201 Roadmap
ICONIX 530 Robustness Diagram 1280, 1289, 1306, 1398, 1400, 1401 Role Context Menu 432 Define 799 Tagged Values 455 Role Binding Connector 1450 Relationship 1450 RoleTag Automation Interface, Connector Package 1709 Rollback Change Options 782 Round-Trip Engineering Introduction 882 RSA Models 683 XMI 681 RSM Import *.emx Files 681 Import *.uml2 Files 681 RTF Copy Bookmark To Clipboard 65, 69 Documentation 1154, 1155 Documentation, Other 1220 List Overrides 1185 Numbered Sections 1185 Numbering Levels 1185 Numbering List 1185 Report 1154, 1155 Section Numbering 1185 RTF Document Options RTF Generator (Enhanced) 321 RTF Generator (Legacy) 321 RTF Generator Document Options (Enhanced) 321 Document Options (Legacy) 321 Document Options, From Diagram (Enhanced) 1157 Document Options, From Diagram (Legacy) 1157 Enhanced 1159 Legacy 1201 RTF Report Advanced Options 1192 Apply Filter (Legacy) 1204 Bookmarks 1213 Bookmarks, In Master Document Elements 1224 Custom Language Settings 1200 Custom Language Settings (Legacy) 1211
1998-2009 Sparx Systems Pty Ltd
1845
Index Character Formatting 1177 Character Styles 1177 Child Sections 1170 Columns 1184 Commands 1171 Continuous Table 1167 Copy Text 1174 Cut And Paste 1174 Delete Text 1174 Description (Enhanced) 1163 Drawing Objects 1189 Edit Picture 1176 Export As RTF Document 1173 File Options 1173 Fonts 1177 Footers 1180 Frames 1189 Headers 1180 Highlight Text 1174 Hyperlinks 1181 IME Option 1184 Import RTF Document 1173 Insert RTF File 1176 Level Numbering 1184 Lists And Overrides 1184 Move Text 1174 Numbered Lists 1178 Page Breaks 1179 Page Columns 1184 Page Mode 1175 Paragraph Formatting 1178 Paragraph Numbering 1178 Paragraph Styles 1178 Paste External Objects 1174 Picture Embed 1176 Picture Frame 1189 Picture Link 1176 Print Options 1173 Redo Edit 1171 Repagination 1179 Revert To Previous Copy 1173 Save File 1173 Search and Replace Options 1189 Sections 1184 Select Model Elements 1164 Select Text 1174 Show Headers & Footers 1175 Special Text 1184 Split Rows 1167 Style Sheets 1184 Tab Support (Enhanced) 1179 Table Commands 1181
RTF Report Diagram Format (Legacy) 1205 Diagram Only 1221 Document Options (Enhanced Generator) 1192 Element Filters 1195 Element-Level 1156 Exclude Elements (Legacy) 1205 Exclude Objects (Legacy) 1205 Exclude Package 1159 Footers, Add 1217 Generate (Enhanced) 1156 Generate (Legacy) 1201, 1208 Generate From Element List 143 Generate, Quick Start 1156 Headers, Add 1217 In MS Open Office 1159, 1192 Include Glossary (Legacy) 1206 Include Issues (Legacy) 1206 Include Package 1159 Include Tasks (Legacy) 1206 Keywords (Legacy) 1211 Object Selections (Legacy) 1207 Open Office Display 1192 Options (Legacy) 1206 Other Filters 1197 Project Constants, User Defined 1199 Quick Start 1156 Save As RTF Document (Enhanced) 1191 Save As RTF Document (Legacy) 1210 Set Main Properties (Legacy) 1203 Single Element (Legacy) 1202 Switch Generator 1192 Templates, Load (Legacy) 1208 Through Element List 1156 Through Model Search 1156 Update Links In MS Word 1219 Wizard (Legacy) 1203 Word Substitution 1200 RTF Report Template Add To MDG Technology 1507 RTF Style Editor (Legacy) 1208 RTF Style Template Create 1162 Delete 1162 Edit 1162 Export To Reference File 1162 Import From Reference File 1162 Normal.RTF 1162 RTF Style Template Editor Add Content 1166 Bookmarks 1181 Enterprise Architect User Guide
Index
1846
RTF Style Template Editor Table of Contents 1184 Tabular Sections 1167 Text Frame 1189 Text Scrolling 1172 Undo Edit 1171 Update Styles 1173 ValueOf Field 1166 View Options 1175 Zoom 1175 RTF Template Add RTF Sections 1190 Import 1190 RTF Templates Tab (Enhanced) 1162 Rule Composer Business Rule Modeling 562 Computational Rule Table 562 Decision Table 562 Rule Table 562 Rule Flow Activity 557 Behavior 557 Diagram 557 Generate Code From Behavior 565 Model 557 Rule Model Diagram 560 Rule Task Element 557 Rules & Scenarios Window 194 Run SQL Patches 654 Run Script Create 972 Run State 1390 Add Instance Variable 1390 Define, Element Context Menu 337 Run-Time Inspection 1009 Variable, Define 1390 Runtime Object In Script Editor 189 Run-Time State Add Instance Variable 1390 Delete Instance Variable 1391 Introduction 1390
-SSave
Changes 36 Controlled Package 688 Diagram As UML Pattern 484 Diagram Changes Automatically 227 Diagram Image To Disk File 297 Diagram, Context Menu Option 277 Diagram, Quick Start 36 Package with XMI 688 Profile From Diagram Context 1482 Profile From Package Context 1482 RTF Report As RTF Document (Enhanced) 1191 RTF Report As RTF Document (Legacy) 1210 Tasks Pane Profile 1520 UML Pattern 484 Save As Copy 73 Shortcut 73 Save Project As Menu Option (File Menu) 71 Save Project As (File Menu Option) Copy 73, 75 Shortcut (Capture Current Environment) 75 Shortcut (Direct Definition) 73 Scale Image To Page Size 329 Scale Diagram View 224 SCC Providers Dialog 711 Version Control Options 711 Version Control, Upgrade For Enterprise Architect 4.5 714 Scenario Automation Interface, Element Package 1689 Element 388 In Rules & Scenarios Window 194 Object 388 Testing 848 Type, Define 809 Use Case 1284 Schema Database, Import From ODBC 1111 DDL, Import From ODBC 1111 Diagram 1313 Scope Values 944 Scope Guides Code Editor, Common 205 Screen Element 1409 Script Add To MDG Technology 1506
1998-2009 Sparx Systems Pty Ltd
1847
Index The Model Search 160 User Defined, Storage 165 Within Project Browser 60 Search Data Parameter Add-In Search 1589 Search Filters Add To Search 169 Search Model Dialog 161 Search Project Add Filters 169 Section Numbering In RTF Reports 1185 Security Basics 745 Change Password 747, 759 Disable 746 Enable 746 Maintain Groups 754 Maintain Users 747 Policy 747 Re-enable 746 Require User Lock Mode 747 Reset Password 759 Rigorous Security 747 Set Password 759 Standard Security 747 Submenu (Project Menu) 85 Tasks 745 User Permission List 755 User/Group Lock Mode 747 What Is User Security? 745 Security Group Permissions 754 Select Alternative Image 312 ODBC Data Source 1113 Stereotypes 479 Tables From ODBC Source 1114 Select <Item> Dialog 394 Select All Menu Option (Edit Menu) 76 Select Attribute Type Data Type 371 Dialog 371 Select By Type Menu Option (Edit Menu) 76 SELECT Statement SQL Search 165 Selectable Element 343 Self Message Calls 1434
Script Commands 187 Console 187 Create 185 Delete 185 Engines 185 Execute 185 Group 185 JavaScript 185 JScript 185 Local 185 User 185 VBScript 185 Script Objects 189 Scripter Window 185 Console Tab 187 Console Toolbar 187 Context Menu 185 Editor 189 Intellisense 189 Runtime Objects 189 Script Editor 189 Script Objects 189 Scripts Tab 185 Toolbar 185 Type Libraries 189 Scripts Folder 991 SDK Enterprise Architect 1467 Search A Package 160 Add-In 1588 Code Editor Facility 214 Conditions 170 Definitions 161 Definitions, New 165 Definitions, Predefined 168 Element Features 161 Element Features, RTF Reports 1197 Element Filters, RTF Reports 1195 Fields 170 Filters 161 List, Predefined Searches 168 Macros, SQL 165 Model 161 Other Filters, RTF Reports 1197 Project 160, 161 Project, Create Search Definition 165 Query, New 165 Results, Manipulate 156 Simple 161 Enterprise Architect User Guide
Index
1848
Self-Message Connector 1433 Hierarchy, Sequence Diagram 1286 Relationship 1433 Return 1433 Send Element 1361 Event 1402 Sequence Communication Messages 1440 Elements and Connectors 118 Message, Change Timing Details 1436 Message, Create 1430 Message, Timing Details 1436 Oracle, DDL Options 1100 Oracle, DDL Options For Packages 1102 Sequence Diagram Activation Levels 1286 And Version Control 1284 Constraints On States, Debugger Generation Of Diagrams 1035 Create After Recording Debug Session 1030 Create In Debug Session 1022 Damage To 1284 Description 1280 Display Options 228 Element Activation 1285 Elements 1284 Elements And Connectors 1280 Enable Capture Of State Transitions in Debug Session 1033 Example 1280 Generate Code From 898, 905 Generate From Automatic Debug Record 1026 Generate From Manual Debug Record 1026 Generate From Method 1022 Generate From Recording History 997 Generate In Debug Session 1020 Layout 1283 Lifeline Activation Level 1286 Messages, Self Message 1433 Self-Message Hierarchy 1286 Show Transitions In State, Overview 1032 State Transition Options, Generate From Debug 1030 Top Margin, Change 1288 Sequence Diagram Message Examples 1435 External To Sequence 1435 General Ordering 1438 Sequence Diagram Recording Tab Build Script, Options 980
Sequence Element Inline, Part And Port 1288 Sequence Message Label Visibility 1288 Modify Height 1283 Sequence Recording Option 980 Enable Diagnostic Messages 985 Enable Filter 980 Limit Auto Recording 984 Record Arguments To Function Calls 982 Record Calls To Dynamic Modules 983 Record Calls To External Modules 982 Server Apache Tomcat, Debugging 1014 JBOSS, Debugging 1014 Tomcat, Debugging 1014 Server Configuration JBOSS 1016 Tomcat 1017 Server Repository Create for Oracle 10g 623 Create for Oracle 9i 623 Service WSDL Diagram 1062 WSDL Element 1062 Service Configuration Tomcat 1018 Service Oriented Architecture 1041 Development 27 Implementing XML-Based, In Enterprise Architect 27 Service Oriented Architecture Modeling Language 535 Set Activities For Transitions 394 Association Specialization 449 Classifiers For REFGUID Tagged Values 394 Collection Classes 919 Connector Visibility 444 Default Diagram, Model 326 Default Tree Behavior 58 Diagram Appearance Options 318 Diagram Page Size 330 Diagram Properties 318 Element Classifier 486 Element Cross-References 351 Element Custom References 351 Element Parent 349 Feature Visibility 300 Font For Element Text 344 Group Permissions 754 Instance Classifier 394
1998-2009 Sparx Systems Pty Ltd
1849 Set
Index Risk Types 840 Roles 799 Scenario Types 809 Status Types 804 Stereotypes 814 Tagged Value Types 815 Technical Complexity Factors 825 Template Package 364 Testing Types 812 UML Types 814 Shallow Copy Of Diagram 299 Shape <LabelID> 1537 Attributes 1528 Decoration 1537 Editor 1526 Label 1537 Main 1537 Source 1537 Target 1537 Shape Attributes Shape Scripts 1528 Shape Editor 815, 1526 Shape Scripts Add To Profile 1479 Arithmetical Operations 1538 Assign To Stereotype 1524 Basic Shapes 1538 Change Font Of Text 1538 Cloud Path 1538 Color Queries 1534 Comments 1538 Conditional Branching 1534 Connector 1538 Create 1524 Custom Shapes 1523 Display Element Properties 1534 Double Line 1538 Drawing Methods 1530 Editable Field 1538 Example Shape Scripts 1538 Filled Arrow 1538 Fonts 1538 Getting Started 1524 Introduction 1523 Looping 1538 Miscellaneous 1538 Multiple Condition 1538 Override Element Appearance 1524 Properties, Connector 1534 Properties, Element 1534
Interface For Element 349 Main RTF Report Properties (Legacy) 1203 Message Source and Target 456 Object State 1391 Operation Parameter Return Type 394 Operation Parameter Type 394 Operation Return Type 394 Parent For Element 349 Pattern Element Defaults 394 Relationship Visibility 444 Set Attribute Dialog 1320 Set Feature Dialog 1320 Set Feature Visibility Element Context Menu Option 342 Set Function Create As Attribute Property 375 Set Operation Dialog 1320 Set Project Custom Colors For Element 362 Set Up Adaptive Server Anywhere ODBC Driver 611 Database Model Files 593 Debug Session 973, 977 For .NET 977 MySQL ODBC Driver 606 ODBC Driver 605 PostgreSQL ODBC Driver 608 Progress OpenEdge ODBC Driver 615 Single Permissions 752 User Groups 751 Settings Author 796 Cardinality (Multiplicity) 816 Clients 802 Constraint Status Types 807 Constraint Types 806 Default Hours 829 Effort Types 838 Environment Complexity Factors 827 Estimation 813 General Types 804 Maintenance 811 Menu 795 Menu, Configure 105 Metric Types 839 Metrics 813 People 796, 801 Problem Types 811 Project Author 796 Project Resources 801 Requirement Types 808 Enterprise Architect User Guide
Index
1850
Shape Scripts Query Methods 1534 Reserved Names, Connectors 1537 Reserved Names, Elements 1537 Return Statement 1538 Shape Attributes 1528 Shape Editor 815, 1526 Single Condition 1538 Stereotypes 1523 String Manipulation 1538 Subshape 1538 Subshape Layout 1536 Syntax Grammar 1527 Terminate Execution 1538 Variable Declarations 1538 Without Stereotypes 1538 Writing Scripts 1527 Share An Enterprise Architect Project 673 Project On Network Drive 674 Shared Key Add 1459 Issues 1461 Shared Model Development Enterprise Architect 5 Shortcut Clear 75 Diagram (Capture Current Environment) 75 Discussion Forum (Capture Current Environment) 75 Menu, Enterprise Architect UML Toolbox 112 Model (Capture Current Environment) 75 Model Search (Capture Current Environment) 75 Relationship Matrix (Capture Current Environment) 75 Shortcut To Diagram 73 Diagram (Direct Definition) 73 Discussion Forum 73 Discussion Forum (Direct Definition) 73 Model 73 Model (Direct Definition) 73 Model Search 73 Model Search (Direct Definition) 73 Relationship Matrix 73 Relationship Matrix (Direct Definition) 73 Show Code Execution (Project Menu) 83 Connectors, All Diagrams 447 Connectors, Requirements Element 447 Connectors, Single Diagram 447
Diagram Caption Bar 79 Duplicate Tagged Values 200 Element Stereotype 480 Feature Stereotype 480 Labels 448 Package Contents On Diagram 273 Project Browser 57 Relationship 387 Toolbox 108 Usage Of Element 350 Use Case Arrowhead 449 Show Status Colors on Diagrams Menu Option 577 Show/Hide Connectors 435 Labels 435 Signal Element 1397 Reception 1397 Simple View 661 Single Permissions Set Up 752 Single User 917 Size Elements By Increments 90 Submenu 90 Slideshow Diagram Presentations 148, 154 Model View 148, 154 Of Diagrams, Automate 154 Properties Dialog, Model View 154 Remove From Model View 154 Run, Diagram View 154 Run, Full Screen View 154 Stop 154 Snap To Grid Submenu 79 SOA 1041 Development 27 Implementing XML-Based, In Enterprise Architect 27 Modeling Language 535 SOA WSDL Elements And Connectors, Enterprise Architect 129 SOA XSD Elements and Connectors, Enterprise Architect 129 SoaML Concept 535 Diagrams 535 Disable 535
1998-2009 Sparx Systems Pty Ltd
1851
Index
SoaML Elements 535 Enable 535 MDG Technology 535 Toolbox Pages 535 SOAP Binding 1064 Software and Systems Process Engineering Meta-model SPEM 537 Software Architect And Enterprise Architect 258 Project Role 258 Software Development Kit Enterprise Architect 1467 Software Engineer And Enterprise Architect 260 Project Role 260 Software Product License Agreement 15 Sort Order Project Browser, Reset 34 Sorted Lookup Table Create In Data Modeling 1098 Source Set for Message 456 Source Code Add New Features And Elements 943 Configuration, Build And Run 967 Control 704 Display In Source Code Viewer 183 Editor 183 Engineering, Project Browser Options 60 File Parsing In Source Code Viewer 183 Generate For Method In Project Browser 69 Generate For Operation In Project Browser 69 Import, Reverse Engineering 885 Internal Editor Options 913 Open Directory, Project Browser Menu Option 67 Reset Language 60, 935 Reverse Engineer 884 Synchronize 884 Synchronize With Method In Project Browser 69 Synchronize With Operation In Project Browser 69 Toolbar Buttons 183 View For Method In Project Browser 69 View For Operation In Project Browser 69 View, Project Browser Menu Option 67 Viewer 183 Source Code Engineering Submenu (Element Menu) 89 Submenu (Project Menu) 82 Enterprise Architect User Guide
Source Code Generation Class 892 Interface 892 Overview 892 Source Object Multiplicity 453 Source Role Details 453 Space Evenly Submenu 90 Sparx Systems Website 13 Specialize Association 449 Spell Check Correct Words 252 Dictionaries 253 Dictionary 252 Language 253 Model 251 Perform 251 Project 251 Single Package 251 Spell Checking Introduction 251 Spelling Language (Tools Menu) 91 Spelling Language Select 253 SPEM Base Plug-In 537 Concept 537 Diagram 539 Disable 537 Elements 539 Enable 537 MDG Technology 537 Method Content 537 Package 537 Process 537 Software and Systems Process Engineering Meta-model 537 Stereotype Presentation 539 Toolbox Page 539 Spring Diagram Layout 288 SQL Custom Searches 165 Editor 165 Patches, Run 654 Search Macros 165 Search, SELECT Statements 165 Server Data Repository, Connect To 632 Server Repository, Create 620 SQL Server
Index
1852
SQL Server Desktop Engine, Upsize To 598 Non-Clustered Primary Key 1086 Upsize To 602 Stack Create Sequence Diagram From 995 Debug Window 995 Save To File 995 Threads 995 Window 995 Stack Auto Capture Marker 1027 Standard Colors Attribute 221 Connector Line 221 Diagram Backgound 221 Element Fill 221 Element Line 221 Method 221 Note Text 221 Operation 221 Options 221 Screen 221 Shadow 221 Standard Element Stereotypes 481 Start Application 41 Enterprise Architect 41 Start Event, BPEL Create 502 Model 502 Types 502 Start Page 44 Quick Start 29 State Add To State Lifeline Element 1267 Chart 1252 Composite 1361, 1362 Constraints, Debugger Generation Of Sequence Diagrams 1035 Delete On State Lifeline Element 1267 Diagram 1252 Edit On State Lifeline Element 1267 Element 1361 Entry And Exit Actions 397, 1361 In Timeline Element 1271 Locate In State Machine Diagram 1263 Locate In State Machine Table 1263 Operation Behavior 400 Reposition In State Machine Table 1263 Simple 1361 State Machine Table Conventions 1263 State (Machine)
Elements and Connectors 120 Group, Enterprise Architect UML Toolbox 120 State Invariant Element 1365, 1367 State Lifeline Element 1364 State Lifeline Element Add State 1267 Add To Timing Diagram 1267 Add Transition 1268 Change Transition Time 1268 Define Name 1267 Delete State 1267 Delete Transition 1268 Edit State 1267 Edit Transition 1268 Merge Transitions 1268 Move Transition 1268 Set Timeline Start Position 1267 Sizing and Scale 1267 Synchronize Transition 1268 State Machine Create For Sequence Diagram Generation In Debugger 1034 Element 1369 Entry And Exit Actions 397 Model For Hardware Description Languages 902 Regions 1255 State Machine Diagram Code Generated From 899 Description 1252 Display Format 1252 Elements And Connectors 1252 Example 1252 Generate Code From 898 Locate State In State Machine Table 1263 Locate Transition In State Machine Table 1263 Locate Trigger In State Machine Table 1263 State Machine Table Add States 1261 Add Substates 1261 Add Triggers 1262 Cell Color 1258 Cell Enumeration 1258 Cell Highlights 1258 Cell Size 1258 Change Position In Diagram View 1261 Change Size 1261 ChangeTransitions 1262 Conventions 1263 Description 1256
1998-2009 Sparx Systems Pty Ltd
1853
Index Inbuilt 1397 Multiple, Restrict Application Of 1484 Predefined Tag Types 1473 Profile 1487 Selector 479 Set Default Appearance Of Objects In Profile 1481 Settings 814 Show On Project Browser 58 SPEM Presentation 539 Standard Element 481 Synchronize Element With Profile 470 Tagged Values In Profile 1472 Tags For Supported Attributes 1474 Tags, Define 1472 UML Description 477 Visibility 480 With Alternative Images 482 XSD In UML Profile 1044 Stereotyped Element Table 1411 Store Image In Enterprise Architect 312 Stored Procedure As Individual Class 1094 Definition 1094 Element 1094 Supported Databases 1094 Straighten Line At Cursor 441 Structural Diagrams Overview 1293 Structured Activity Conditional Node 1367 Element 1367 Loop Node 1367 Nested 1367 Node 1367 Sequential Node 1367 Simple Composite 1367 Structured Tagged Value Type 1542 Structured Tagged Values Create 1544 Style For Connectors 434 Style Template Fragments, HTML 1237 StyleEx Diagram Profile Attribute Values 1515 Sub-Activity Element 1324, 1367 Submachine State
State Machine Table Export To CSV 1264 Format 1256 Insert Transitions 1262 Legend, Add 1263 Legend, Remove 1263 Locate State In State Machine Diagram 1263 Locate Transition In State Machine Diagram 1263 Locate Trigger In State Machine Diagram 1263 Operations, Overview 1260 Options 1258 Remove Substate Parent Relation 1261 Reposition States 1263 Reposition Substates 1263 Reposition Triggers 1263 State-Next State 1256 State-Trigger 1256 Table Format 1258 Trigger-State 1256 State Region Composite 1255 State Transitions Enable Capture In Sequence Diagram, Debug Session 1033 Recorded In Debugger, Overview 1032 State/Continuation Element 1365 Status Bar Element Coordinates 138 Enterprise Architect Workspace 138 Hide 138 Show 138 Zoom Control 138 Status Type Color 804 Define 804 For Different Elements 804 Stereotype Add Shape Script In Profile 1479 Add To Profile 1471 Add, Automation Interface Code Example 1737 Analysis 1398 And Metafiles 477 Apply To Dependency Relationship 1424 Automation Interface Repository 1673 Custom 1468 Define As Metatype 1484 Definition 477 Dialog 1468 Extension 1397 Enterprise Architect User Guide
Index
1854
Submachine State Element 1361, 1369 Submenu Add-In 104 Advanced (Element) 89 Alignment 90 Appearance (Element) 90 Build And Run (Project Menu) 83 Data Management (Tools Menu) 92 Database Engineering (Project Menu) 84 Debug Workbench 79 Documentation (Project Menu) 81 Hidden, Create In Toolbox Profile 1510 Import/Export (Project Menu) 86 Inline Features (Element Menu) 88 Make Same 90 Model Transformations (Project Menu) 84 Model Validation (Project Menu) 84 More Windows 79 Move 90 Online Resources 107 Paste Elements (Edit Menu) 77 Security (Project Menu) 85 Size 90 Snap to Grid 79 Source Code Engineering (Element Menu) 89 Source Code Engineering (Project Menu) 82 Space Evenly 90 Toolbars 79 Version Control (Project Menu) 85 Visual Layouts 79 Visual Styles 79 Web Services (Project Menu) 84 XML Schema (Project Menu) 85 Zoom 331 Z-Order 90 Subshape Example 1536 In Shape Scripts 1536 Substate Reposition In State Machine Table 1263 Sub-State 1362 Substitute Words In RTF Report (Legacy) 1211 Substitution Conditional 1550 Direct 1550 Macro 1534 Subtype Relationship 446 Subversion Caching Client Credentials 722
Configure Version Control 725 Documentation 722 Executables 722 Repository URLs 722 Setting Up 722 TortoiseSVN 727 UNIX-Based Client 724 Using With Enterprise Architect Under WINE Crossover 724 Version Control Options 722 Version Control, Create Local Working Copy 724 Version Control, Create Repository Subtree 723 Windows-Based Client 724 Sunmenu Manage .EAP File (Tools Menu) 92 Support For Registered Users 14 For Trial Users 14 Supported Attribute By XML Element Node 474 Create Composite Elements 1486 Define Behavior On Creating Instance 1485 Define Child Diagram Types 1486 In UML Profiles 474 Metatype, In UML Profiles 1483 Of Stereotype Tags 1474 Stereotype, In UML Profiles 1483 Supported Stereotype Attribute Tags 1474 Supported Tags In UML Profiles 472 Suppress Line Segments 441 SwimlaneDef Automation Interface, Diagram Package 1716 Swimlanes Automation Interface, Diagram Package 1717 Manage 311 On Diagram 311 Orientation 311 Swimlanes Matrix Activate 308 And Matrix Dialog, Matrix Tab 308 Create Columns And Rows 308 Define Heading 308 Delete Items 308 Edit Items 308 Lock 308 Model Profile 308 Size 308 Switch RTF Generator 1192
1998-2009 Sparx Systems Pty Ltd
1855
Index Element 1370 Insert New From Toolbar 134 System Requirements For Debug 986 System Window Project Glossary Tab 875 Project Issues Tab 870 Project Tasks Tab 866 SystemC Code Generation 931 Enterprise Architect Toolbox Pages 957 Language Options 931 Modeling Conventions 957 Systems Engineering Edition Of Enterprise Architect 8 Systems Modeling Languages MDG Technology For, Enterprise Architect Systems Modelling Language (SysML) 543
Sybase Adaptive Server Anywhere ODBC Driver, Set Up 611 Upsize To 595 Synch Element 1370 Synchronization 675 Intial Code In Operations 401 Introduction 882 Macros, Code Template Syntax 1567 Of Source Code And Model 884 Synchronize Batch With Code 89 By Dragging Element From Toolbox 470 Call Argument With Behavior Parameter 408 Class With Code 89 Code 942 Elements With Profile 470 Existing Code Sections 943 Invocation Argument With Behavior Parameter 408 Package With Source, (Project Menu Option) 82 Replicas 676 Stereotypes From Profile 470 Tagged Values And Constraints 470 Tagged Values From MDG Toolbox Pages 470 Tagged Values From Resources Window 470 UML Profile Tagged Values And Constraints 470 Syntax Check For UML, Option 223 Syntax Grammar Shape Scripts 1527 SysML 1.1 543 Concepts 543 Diagrams 543 Disable 543 MDG Technology 543 MDG Technology For, Enterprise Architect 11 Model, Simulate 547 Parametric Models 544 Toolbox Pages 543 System Project Glossary 179 Project Issues 179 Project Tasks 179 Tabs 179 Testing 846 Users 747 Window 179 System Boundary Enterprise Architect User Guide
11
-TTab Asterisks 141 Audit History In Output Window 202 Context Menu 141 Diagram 141 Re-order Diagram Tabs 141 Tab Support RTF Style Template Editor (Enhanced) Tabbed Frame Combine Windows In 173 Remove Window From 173 Table DDL Script For 1071 Detail 1411 Element 1411 Owner Tagged Value 1077 Properties 1411 Set Owner 1077 Set Properties 1075 State Machine 1256 Table Of Contents MS Word, Add 1215 Table Of Figures MS Word, Add 1216 Tables in RTF Reports Sections 1167 Split Rows 1167 Tag Compartment, Element 831 Management, Advanced 390
1179
Index
1856
Tag Profile 1472 Tag Type Predefined, Assign To Stereotype 1473 Tagged Value Add 392 Add To Operations 403 Assign Information To 199 Assign To Item 198 Behavior Parameters 409 By Dragging Element From Toolbox 470 Connector, Use 1475 Custom, Create 1547 Duplicate Values 196 Element 390 Element Package, Automation Interface 1689 For Oracle Table Properties 1078 For Table Owner 1077 Fully Qualified, Show 300 Fully-Qualified Value 196 In UML Profiles 470 Inherited, Show 300 Macros, Code Template Syntax 1563 Masked, Create 1547 Model Components And 196 Modify 196 Modify Value 198 Of Attributes 375 Quick Add 392 Reference Data, Create 1546 Show Duplicates 200 Structured, Create 1544 Supported For UML Profile Stereotypes 472 Synchronize, And Constraints 470 Synchronize, From MDG Toolbox Pages 470 Synchronize, From Resources Window 470 Tab, Element Properties Dialog 390 Toolbar 196 Types 815 Types Of Value Field 198 View 196 What Is A? 196 Window 196 Tagged Value Type Add To MDG Technology 1502 Filters 1542 Introduction 1542 Predefined Reference Data 1545 Predefined Structured 1542 TaggedValue Automation Interface, Element Package 1689 Target
Role 455 Set For Message 456 Types 1223 Task Automation Interface Repository 1674 Completion 834 Details 866 Task Panel Add To MDG Technology 1501 Tasks Pane 13 Allocate Toolbox To Contexts 1519 Commands, Built In 1517 Contexts, Define 1519 Getting Started 202 Named Contexts 1519 Profiles, Create 1516 Run Add-In Functions From 1518 Save Profile 1520 Toolboxes, Define 1516 Tools 202 Window 202 TCF Value 825 Weighting 825 TcSE MDG Integration For, Enterprise Architect 11 Team Deployment And Version Control 707 Version Control Branching 707 Team Development 673 Team Foundation Server Connect Enterprise Architect Model For Version Control 728 Version Control Option 728 Teamcenter Systems Engineering, Siemens PLM MDG Integration For, Enterprise Architect 11 Tear Off Menus 176 Technical Complexity Factor Estimate Project Size 828 Value 825 Weighting 825 Technology Developer And Enterprise Architect 267 Project Role 267 Technology Event EA_OnInitializeTechnologies 1607 Technology Events Add-In Model 1607 EA_OnDeleteTechnology 1610 EA_OnImportTechnology 1610 EA_OnPostActivateTechnology 1608 EA_OnPreActivateTechnology 1608
1998-2009 Sparx Systems Pty Ltd
1857
Index MDG Technology For, Enterprise Architect 11 Model Template 54 Overview 842 Report, Create 1223 Scenario 848 Support 842 System 846 Type, Define 812 Unit 845 Window 843 Workspace 843 Testing Details Report 853 Testing Feature Insert In Element 421 Text Element Create 359 Insert New From Toolbar 134 TFS Connect Enterprise Architect Model For Version Control 728 Version Control Option 728 Working Folder For Enterprise Architect Version Control 728 Workspace For Enterprise Architect Version Control 728 The Open Group Architecture Framework MDG Technology For, Enterprise Architect 11 Theme Microsoft Office Styles 237 Microsoft Visual Basic Styles 237 Options 237 Visual Style 79 Threads Folder 991 Threads, Debug Stack Window 995 Tidy Line Angles 441 Time Event 1359 Time Interval Compress 1274, 1277 Context Menu 1274 Copy and Paste 1277 Create 1274 Delete 1274 Description 1274 Move 1274 Operations 1277 Resize 1274 Select 1274 Shift Left Or Right 1277 Transitions 1277 Time Range
Technology Events EA_OnPreDeleteTechnology 1609 Technology-Defined Model View Set Up 152 Template Add RTF Sections To 1190 Behavioral Model 1570 Corporate 1190 Editor In SDK 1579 Editor, Code Templates 940 Element 466 Fragments, HTML 1237 Instantiated 1380 Model, Incorporate In Technology 1521 Package, Settings 364 Parameterized Classes 1380 RTF, Import 1190 Transformation, Default 1143 Term Automation Interface Repository 1675 Terminate Element 1372 Test Automation Interface, Element Package 1690 Cases 845 Copy Between Categories 849 Create Defect From 853 Documentation 855 Import From Other Element 851 Model Template 54 Move Between Categories 849 Report 855 Result Output 855 Script Output 855 Test Case Element 1410 Test Details Dialog 844 Test Scripts Compartment 854 Tester And Enterprise Architect 264 Project Role 264 Testing Acceptance 847 Asterisk On Testing Window Tabs 843 Compartment, Element 831 Import Element Scenarios 850 Import Internal Constraint 852 Import Internal Requirement 852 Import Package Scenarios 850 Import Responsibility 852 Integration 845 Enterprise Architect User Guide
Index
1858
Time Range Set For Timing Diagram 1266 Timeline Element States Add Via Configure Timeline Dialog 1271 Delete via Configure Timeline Dialog 1271 Edit Via Configure Timeline Dialog 1271 Maintain 1271 Numeric Range Generator 1271 Timeline Range Set For Timing Diagram 1266 Timeline Start Position Set For State Lifeline Element 1267 Timing Constraint 1436 Details, Change 1436 Elements and Connectors 119 Group, Enterprise Architect UML Toolbox 119 Message 1442 Message, Create 1443 Observation 1436 Timing Diagram Add Value Lifeline Element 1270 Create 1266 Description 1264 Edit Options 1266 Edit Value Lifeline Element 1270 Elements And Connectors 1264 Example 1264 Set Time Range 1266 TOGAF MDG Technology For, Enterprise Architect 11 Tomcat Server, Configuration 1017 Server, Debugging 1014 Service Configuration 1018 Toolbar Add Commands 93 Change Command Icon Appearance 93 Code Generation 133 Console Tab, Scripter Window 187 Create 94 Current Connector 136 Current Element 135 Customize 94 Debug 1008 Default Tools 132 Diagram 135 Display Labels 94 Docked 131 Element 134 Element List 146 File Search, Debugging 1006
Floating Buttons, Display 230 Format (Element Appearance) 136 Hide 94 Large Icons 104 Missing Icon 92 Model Search 156 Options, Customize Appearance 104 Other Windows 138 Project 132 Project Browser 60 Remove 94 Remove Commands 93 Rename 94 Rich Text Notes 139 Screen Tips 104 Scripter Window 185 Show 94 Submenu 79 UML Elements 134 Workspace 131 Workspace Views 137 Toolbar Customize Button Show/Hide 79 Toolbox Add To MDG Technology 1500 Connectors For Extending In Profile 1513 Customize 1509 Default, Override In Profile 1511 Elements For Extending 1512 Override Default In Toolbox Profile 1511 Page Attributes 1510 Profile, Create For MDG Technology 1509 Profiles 1509 Shortcut Menu 112 Tasks Pane, Define 1516 Toolbox Profile Connectors For Extending 1513 Create Hidden Submenu In 1510 Items, Assign Icons For 1511 Pages That Can be Overridden 1512 Tools Custom 98 External Applications 98 Pass Parameters To External Tools 100 Tools Menu 91 Top Margin Sequence Diagram, Change 1288 Topic Add To Discussion Forum 245 TortoiseSVN In Version Control 727 Trace
1998-2009 Sparx Systems Pty Ltd
1859
Index Connector 1452 Delete On State Lifeline Element 1268 Delete Via Configure Timeline Dialog 1273 Edit In Time Intervals 1277 Edit On State Lifeline Elements 1268 Edit Via Configure Timeline Dialog 1273 Effect 1452 Guard 1452 Highlight Associated Trigger or State 1262 Insert In State Machine Table 1262 Locate In State Machine Diagram 1263 Locate In State Machine Table 1263 Merge On State Lifeline Element 1268 Move On State Lifeline Elements 1268 Properties 1452 Relationship 1452 State Machine Table Conventions 1263 Trigger 1452 Transitions Collection Automation Interface, ElementFeatures Package 1702 Translation RTF Report Generation 1200 Tree Style Hierarchy Create 450 Set Default Link Style 450 Trial Version Of Enterprise Architect 20 Triangle Red 880 Tricks and Traps Create Add-In 1586 Trigger Create In State Machine Table 1262 Create In Transition Properties 1452 Element 1372 For Transition 1452 Intermediate Event, BPEL 508 Locate In State Machine Diagram 1263 Locate In State Machine Table 1263 Operation, What Is A? 1098 Reposition In State Machine Table 1263 Start Event, BPEL 502 State Machine Table Conventions 1263 Type 1452 Trigger Operation Create 1098 What Is A? 1098 Type Element Context Menu 337 Type Hierarchy Dialog 349 Type Libraries
Trace Connector 1452 Relationship 1452 Trace Marking In Debug Session 1027 Traceability Diagrams 791 Element Grouping 787 In Requirements Models 1310 Introduction 786 Model Structure 787 Package Organization 787 Themes 786 Tools 792 With Dependency Report 792 With Hierarchy Window 792 With Implementation Report 792 With Relationship Matrix 792 Trademarks 18 Transfer Project Data Between Repositories 655 Transform Connector End 1150 Connectors 1148 Copy Information 1150 Duplication Of Connectors 1148 Elements, MDA-Style Transformations 1120 Model, MDA-Style Transformations 1120 Names 1150 Objects 1144 TRANSFORM_CLASSIFIER Macro 1151 TRANSFORM_CURRENT Macro 1150 TRANSFORM_REFERENCE Macro 1148, 1151 Transformation Built In, MDA-Style Transformation 1125 C# 1125 Dependencies 1117 Write 1143 Transformation Dependency Trace With Hierarchy Window 194 Transformation Template Default 1143 Modify 1123 Transfer Between Models 1122 Transition Add To State Lifeline Elements 1268 Add Via Configure Timeline Dialog 1273 Change In State Machine Table 1262 Change Time, State Lifeline Element 1268 Enterprise Architect User Guide
Index
1860
Type Libraries For Script Editor 189 Type Specific Menu Section Connector 433
-UUAC And Debugging 987 UI Control Element 1411 Ultimate Edition Of Enterprise Architect 8 UML 1.3 652, 679, 680, 681 1.4 680, 681 1.5 230 2.0 681 2.0 Migration 652 2.1 - Definition 5 Analysis Tool - Enterprise Architect 5 Build Systems 5 Connectors 1415 Data Modeling Profile 1071 Definition 1245 Design Systems 5 Design Tool - Enterprise Architect 5 Dictionary 1245 DTD 684 Elements 1316 Enterprise Architect Modeling Platform 270 Extend 1245 Extending 465 Manage Complexity 5 Mappings To XSD 1052 Model Complexity 5 Model Structure, Manage - Enterprise Architect 5 Modeling With, Enterprise Architect Overview 26 Models Under Single Root 683 Pattern 483 Recommended Reading 1245 Shared Model Development - Enterprise Architect 5 Support - Enterprise Architect 5 Syntax Checking Option 223 Visualize Systems - Enterprise Architect 5 UML Behavioral Diagram Overview 1247 UML Business Process Model In Enterprise Architect 47
UML Class Model In Enterprise Architect 50 UML Component Model In Enterprise Architect 51 UML Database Model In Enterprise Architect 51 UML Deployment Model In Enterprise Architect 52 UML Diagram Add To Project 279 Copy, Deep 299 Copy, Shallow 299 Create 279 Duplicate 299 Extended 1247, 1306 In Enterprise Architect 274 MDG Technology 1247 Overview 1247 Paste 299 Types 1247 What Is A? 1247 UML Domain Model In Enterprise Architect 48 UML Element Behavioral Diagram Elements 1316 Structural Diagram Elements 1376 Toolbar 134 UML Maintenance Model In Enterprise Architect 55 UML Model Add Connectors In Enterprise Architect, Tutorial 32 Add Diagram In Enterprise Architect, Tutorial 31 Add Element In Enterprise Architect, Tutorial 31 Add Element To Diagram, Tutorial 31 Add Package In Enterprise Architect, Tutorial 30 Add View, Tutorial 30 CSV Import And Export In Enterprise Architect 692 Define Connector Properties In Enterprise Architect 33 Define Element Properties In Enterprise Architect 33 Manage 585 Project Roles And Tasks In Enterprise Architect 37 What Is A? 585 UML Model Management Add-Ins 585 Auditing 585
1998-2009 Sparx Systems Pty Ltd
1861
Index Create 1470 Example File 475 Export 1481 Import 468 Import From XML 466, 1468 Save From Diagram 1482 Save From Package 1482 Stereotypes 466, 1468 Structure 473 Synchronize Elements 470 Synchronize Stereotypes 470 Synchronize Tagged Values And Constraints 470 Work With 1470 XSD, Stereotypes 1044 UML Project Create In Enterprise Architect, Tutorial 29 UML Project Model In Enterprise Architect 55 UML Requirements Model In Enterprise Architect 47 UML Resources Patterns 483, 486 UML Structural Diagram Overview 1293 UML Syntax Compliance Turn Off 667 UML Testing Model In Enterprise Architect 54 UML Toolbox Activity Group 120 Add Stereotype To Diagram Element 108 Analysis Group 125 Appearance Options 110 Archimate Group 496 BPMN Group 525 Business Modeling Group 1314 Class Group 116 Collapse Page 108 Common Group 114 Communication Group 118 Component Group 121 Composite Group 118 Create Elements And Connectors 108 Custom Group 126 Data Flow Diagram Group 529 Data Modeling Group 130 Deployment Group 122 Documentation Group 1224 Expand Page 108 Hide Labels 110 Hide Toolbox 108
UML Model Management Automation Interface 585 Baselines And Differences 585 In Enterprise Architect 585 Introduction 585 Model Files 585 Project Data Transfer 585 Project Discussion Forum 585 Project Sharing 585 Replication 585 User Security 585 Version Control 585 UML Model Pattern Introduction 46 Select In Enterprise Architect 29 UML Model Template In Enterprise Architect 46 Introduction 46 UML Modeling And MDG Technologies 270 And Requirements Management In Enterprise Architect 270 Build Models 270 Business Modeling In Enterprise Architect 270 Enterprise Architect Processes 25 Enterprise Architect Tools and Features 40 Enterprise Architect, Tutorial 24 Quick Start - Enterprise Architect 24 Tasks With Enterprise Architect 25 Tutorial - Enterprise Architect 24 What Is? 270 With Diagrams 274 With Elements 333 With Enterprise Architect 270 With Packages 271 With UML Patterns In Enterprise Architect 270 With UML Profiles In Enterprise Architect 270 With UML Stereotypes In Enterprise Architect 270 Working With Enterprise Architect 24 UML Modeling Tool Enterprise Architect 3 Enterprise Architect - Key Features 7 UML Pattern Actions 484 Add To Diagram 486 Create From Diagram 484 In Resources View 484 Save 484 Save From Diagram 484 UML Profile And Element Templates 466, 1468 Enterprise Architect User Guide
Index
1862
UML Toolbox ICONIX Group 530 Interaction Group 118 Maintenance Group 127 MDG Technology Groups 493 Metamodel Group 124 Mind Mapping Group 533 Object Group 117 Pin Pages 110 Profile Group 124 Requirement Group 127 Set Toolbox Visibility 110 Shortcut Menu 112 Show Labels 110 Show Toolbox 108 SoaML Pages 535 SPEM 539 State (Machine) Group 120 Synchronize Stereotyped Tagged Values SysML Groups 543 SystemC Group 957 Timing Group 119 Unpin Pages 110 Use Case Group 116 User Interface Group 128 Verilog Group 960 VHDL Group 961 WSDL Group 129 XML Schema Group 129 UML Types Cardinality (Multiplicity) 816 Dialog 814 Stereotypes 814 Tagged Values 815 UML Use Case Model In Enterprise Architect 48 UML_EA.DTD 684 File 681 UML2 File Import 683 Unadjusted Use Case Points 828 Undo Last Action, Diagram Edits 318 Option (Edit Menu) 76 Unified Modeling Language 1245 Unique Constraint 1098 Index 1098 Unit Test Run 1038 Unit Test Script Create 971
108
Unit Testing 845 Create Build and Test Scripts 1037 Define Tests 1037 In Build And Run 1037 Record Test Results 1039 Set Up 1037 Unlock Connector 757 Element 757 Unpin Toolbox Pages 110 Update Element Phase, For Package 879 Element Status, For Package 879 Element Version, For Package 879 Package Phase 879 Package Status 879 Package Version 879 Upgrade Existing License (v. 6.5 And Earlier) 1462 Existing License (v. 7.0+) 1462 Model 650, 651 Models, Upgrade Wizard 650 Project 650 Replicas 651, 677 Wizard 650 Upsize From Desktop and Professional Editions 593 To Access 2007 594 To MySQL 604 To Oracle 600 To PostgreSQL 599 To Progress OpenEdge 597 To SQL Server 602 To SQL Server Desktop Engine (MSDE) 598 To Sybase Adaptive Server Anywhere (ASA) 595 Usage Connector 1454 Of Element, Show 350 Relationship 1454 Use Classifiers 394 Connector 1454 Pattern 486 Profiles 467 Relationship 1454 Spell Checker 251 Use Case And Requirements 571 Arrowhead, Show 449 Element 1373
1998-2009 Sparx Systems Pty Ltd
1863
Index Maintain Groups 754 Maintain Users 747 Policy 747 Re-enable 746 Tasks 745 What Is User Security? 745 User Security Groups Set Up 751 User Settings Options Dialog 218 User/Group Lock Release 761 Set 761 User/Group Lock Policy 747 Using Enterprise Architect Application Workspace 42 Remove Recent Project 45 Start Page 44 Utility Compare 776 Diff 776 UUCP Estimate Project Size 828
Use Case Elements and Connectors 116 Extension Points 1374 Group, Enterprise Architect UML Toolbox 116 Keyword 828 Metrics 825 Metrics Dialog 828 Model Template 48 Phase 828 Points, Unadjusted 828 Rectangle Notation 1375 Scenarios 1284 View 661 Use Case Diagram Description 1250 Elements And Connectors 1250 Example 1250 Use Element Extras Automation Interface Code Example 1733 Use Repository Extras Automation Interface Code Example 1735 User Default Fonts 225 Directory 796 Groups 747 Settings 917 User Defined Searches Storage 165 User Dictionary For Spell Checker 252 User Forum 14 User ID Import From Active Directory 749 User Interface Components 42 Control Element 1411 Element 1411 Elements and Connectors 128 Group, Enterprise Architect UML Toolbox 128 Screen Prototype 1409 User Interface Design 1308 User Interface Diagram Description 1312 Elements And Connectors 1312 Example 1312 User Lock Identify Owner 764 Indicators 763 User Security Basics 745 Disable 746 Enable 746 Enterprise Architect User Guide
-VValidate Package Configuration For Version Control 735 Validation Cancel 84 Of Diagram 665 Of Element 665 Of Model, Configure 667 Of Model, Configure For MDG Technology 1520 Of Package 665 Rules, Model 667 Validation, Properties Attribute 668 Element 668 Feature 668 Relationship 668 Validation, Well Formedness Attribute 668 Diagram 668 Element 668 Feature 668 Relationship 668 Value Lifeline Element 1375 Add States 1270 Add To Timing Diagram 1270
Index
1864
Value Lifeline Element 1375 Add Transitions 1270 Change Transition Time 1270 Delete Transitions 1270 Edit Transitions 1270 Sizing and Scale 1270 States 1270 Transitions 1270 ValueOf Field RTF Style Template Editor 1166 Variable Debug 1002 Definitions, Code Template Syntax 1577 Definitions, Examples 1577 References, Code Template Syntax 1577 References, Examples 1577 VB Set Up In Automation Interface 1637 VB.NET Code Generation 932 Language Options 932 Modeling Conventions 958 VBScript 185 Verilog Code Generation 932 Enterprise Architect Toolbox Pages 960 Language Options 932 Modeling Conventions 960 Version Control 685 And Sequence Diagram 1284 Apply To Enterprise Architect Model 706 Apply To Model Branch 738 Basics 706 Branching 707 Check In and Check Out Packages 736 Configuration 708, 709, 740 Configuration, Team Deployment 707 Configuration, Use Previously-Defined 735 Configure In Subversion 725 Configure Package 734 Connect Model Using TFS 728 Copy-Modify-Merge Policy 706 CVS Options 715, 719 CVS Remote Repository 715 Discussion Of File Control 706 Export Model Branch 739 File History 732 File Properties 732 Import Model Branch 740 In Team Deployment 707 Include Other Users' Packages 738 Introduction 704
Locking - Necessary? 706 Lock-Modify-Unlock Policy 706 Manual, With XMI 690 Menu 732 Nested Packages 706 Offline 743 Package Configuration, Validate 735 Policies 706 Project Browser Indicators 704 Recommendations 731 Refresh View Of Shared Model 741 Resynchronize Package Version Control Status 742 Review Version Control History 741 SCC Options 711 SCC, Providers DialogSCC, Providers Dialog 711 SCC, Upgrade For Enterprise Architect 4.5 714 Set Up 708 Settings 709 Setup Menu 708 Submenu (Project Menu) 85 Subversion Options 722 Subversion, Create Local Working Copy 724 Subversion, Create New Repository Subtree 723 Subversion, Setting Up 722 Subversion, TortoiseSVN 727 Subversion, Using With Enterprise Architect Under WINE Crossover 724 Tasks 731 TFS Option 728 Use Nested Version Control Packages 711 Using 731 Who Has Checked Out A Package? 732 Version Controlled Package Icon 61 VHDL Code Generation 933 Enterprise Architect Toolbox Pages 961 Language Options 933 Modeling Conventions 961 View Add To UML Model, Quick Start 30 Create 1096 Database 1096 Element 1096 Element List 143 Locks 757 Menu 78 Next Diagram 318 Of Model 148
1998-2009 Sparx Systems Pty Ltd
1865
Index
View Previous Diagram 318 Project Statistics 81 Requirements 581 Submenus 79 View Options 142 Diagram View 142 Element List 143 Views Add 662 Class 661 Component 661 Delete 664 Deployment 661 Dynamic 661 Manage 661, 662 Rename 663 Simple 661 Use Case 661 Virtual Document Add Packages As Attributes 1228 Change Package Sequence 1230 Create Master Document For 1225 Create Model Document For 1227 Delete Package Attributes 1229 Delete Packages 1229 Document Order 1230 Generate RTF Report From 1231 Introduction 1224 Master Document Element 1224 Model Document Element 1224 Model Search Sequence 1230 Move Package Attributes Between Elements 1230 RTF Bookmarking In 1224 Sequence of Model Document Elements 1230 Sequence of Package Attributes 1230 Tagged Values For Master Document 1225 Visibility Indicators 323 Values 944 Visibility Of Elements Customize 358 Visible Class Members Set Diagram Appearance Options 325 Visio MDG Link For, Enterprise Architect 11 Visual Layout 79, 236 Layout (View Menu Option) 78 Styles 79 Styles (View Menu Option) 78 Themes 79 Enterprise Architect User Guide
Visual Analyzer Overview 965 Visual Basic Code Generation 934 Connect To Automation Interface 1635 Import, Reverse Engineering 886 Language Options 934 Modeling Conventions 962 Set Up In Automation Interface 1637 Visual Basic.Net Import, Reverse Engineering 886 Visual Layouts Submenu 79 Visual Studio 2005/2008 MDG Integration For, Enterprise Architect Visual Studio.NET MDG Link For, Enterprise Architect 11 Visual Styles Microsoft Office Styles 237 Microsoft Visual Basic Styles 237 Options 237 Submenu 79 Visualize Systems Enterprise Architect 5 VM Attach To In Java Debug Session 976
11
-WW3C XML Technologies, Introduction 1041 W3C XSD Elements and Connectors, Enterprise Architect 129 W3CWSDL Elements And Connectors, Enterprise Architect 129 WAN Optimization Enterprise Architect Performance 629, 632, 635, 638, 641, 644 For ASA Data Repository 641 For MSDE Server Data Repository 644 For MySQL Data Repository 629 For Oracle Data Repository 635 For PostgreSQL Data Repository 638 For Progress OpenEdge Data Repository 644 For SQL Server Data Repository 632 WAN Optimizer Introduction 648 Performance Of Enterprise Architect 648 Transmission Diagram 648 Watches
Index
1866
Watches Window 995 Watermark Diagrams 224 Web Page Modeling 1413 Report Style Templates 1235 Stereotypes 1413 Templates, Reporting 1235 Web Browser Home Website, Access 172 Internet Email, Access 172 Web Search Engine, Access 172 Web Page Prototype 1409 Web Server Java 1014 Web Service Create In BPEL 522 Web Service Definition Language 1058 Web Services Submenu (Project Menu) 84 Web Services (WSDL) 1058 Generate WSDL 1067 Import WSDL 1068 Model WSDL 1058 Model WSDL, Binding 1064 Model WSDL, Document 1061 Model WSDL, Message 1064 Model WSDL, Message Part 1067 Model WSDL, Namepaces 1060 Model WSDL, Port Type 1063 Model WSDL, Port Type Operation 1066 Model WSDL, Service 1062 Web Services Business Process Execution Language (WS-BPEL) 498 Web Site Access Any 172 Access Home 172 Home, Define Default 219 Sparx Systems 13 Well Formedness Validation Attribute 668 Diagram 668 Element 668 Feature 668 Relationship 668 What Is A Check Constraint? 1098 A Connector? 1415 A Foreign Key? 1088 A Pattern? 483
A Primary Key? 1085 A Project? 589 A Stored Procedure? 1094 A Tagged Value 196 A Trigger Operation? 1098 A UML Model? 585 An Index? 1098 Enterprise Architect? 5 User Security? 745 XMI? 679 What Is A? Requirement 569 Wide Area Network (WAN) Optimizer Introduction 648 Performance Of Enterprise Architect Transmission Diagram 648 Window Autohide 175 Breakpoints 992 Bring To Top 106 Close All 106 Close All Except Current 106 Close Current 106 Combine In Frame 173 Connections 193 Constraints 194 Data Breakpoints 998 Debug 991 Dockable 173 Element Browser 191 File Search, Debugging 1006 Floating 173 Hide 106 Hierarchy 194 Layout Palette 280 Linked Requirements 194 Links 193 Locals 994 Make Active 106 Menu 106 Model Views 148 Modules, Debug 1000 Notes 195 Output 202 Output, Debug 1000 Pan And Zoom 204 Project Management 201 Properties (Element) 178 Rearrange 173 Recording History 997 Relationships 193 Reload 106
648
1867
Index With MDG Technologies 493 With UML Connectors 432 Workspace Toolbars, Docked 131 Toolbars, Introduction 131 Workspace Views Show/Hide From Toolbar 137 Toolbar 137 WS-BPEL 498 WSDL Binding Diagram 1064 Binding Element 1064 Document Element 1061 Elements And Connectors 129 Group, Enterprise Architect UML Toolbox Import 1067, 1068 Message Diagram 1064 Message Element 1064 Model 1058 Namespace Element 1060 Overview Diagram 1060 Port Type Diagram 1063 Port Type Element 1063 Port Type Operation 1066 Service Diagram 1062 Service Element 1062 Transformation 1138 UML Toolbox Pages 1058 Web Services 1058 WSDL Support Introduction 1058
Window Remove From Frame 173 Requirements 194 Resources 180 Reveal Autohidden 175 Rules & Scenarios 194 Scripter 185 Stack 995 System 179 Tagged Value 196 Tasks Pane 202 Watches 995 Workbench Debugger, Invoke Methods 1003 Windows Authentication 747 Service, Apache Tomcat 1018 Windows Active Directory Import User Login ID From 749 Windows Authentication Accept 749 Windows Vista Enable Debugger 987 Windows7 Enable Debugger 987 WINE-Crossover Using Subversion With Enterprise Architect Under 724 Word Special Considerations 1215 Word Substitution RTF Report Generation 1200 Wordpad Open 91 Work Flow Monitor With Model Views 785 Work With Enterprise Architect 25 Work With Attributes Automation Interface Code Example 1737 Work With Methods Automation Interface Code Example 1738 Workbench Debug Workbench Window 1001 Debugger Window, Invoke Methods 1003 Supported Platforms 1001 Variable Arguments 1002 Variable Constructors 1002 Variables, Create 1002 Variables, Delete 1002 Variables, Description 1002 Variables, Requirements 1002 Working Enterprise Architect User Guide
129
-XXMI Export 679, 680 Export MOF To 702 Import 679, 681 Import And Auditing 775 Import MOF From 702 Limitations 684 Manual Version Control 690 Specifications 679 UML DTD 684 XMIType Enum Automation Interface 1647 XML Code Page 235 Default XMI Version 235 Documents, Default Editor 235 Import Referenced Schema 1055
Index
1868
XML Package 685 Pattern File 483, 484 Set Default XML Directory 235 Set Default XML Editor 235 Specifications, Options Dialog 235 Technologies, Introduction 1041 XMI 1.0 Prefix 235 XML Schema Elements and Connectors 129 Generate In Garden Of Eden Style 1054 Group, Enterprise Architect UML Toolbox 129 Submenu (Project Menu) 85 UML Profile For XSD 1044 XSD 1042 XSD Abstract Models 1050 Datatype Packages 1050 Generate 1052 Import 1055 Import, Global Element Behaviour 1056 Model 1042 Transformation 1139 XML Schema 1042 XSDany 1044 XSDattribute 1044 XSDattributeGroup 1044 XSDchoice 1044 XSDcomplexType 1044 XSDelement 1044 XSDgroup 1044 XSDrestriction 1044 XSDschema 1044 XSDsequence 1044 XSDsimpleType 1044 XSDtopLevelAttribute 1044 XSDtopLevelElement 1044 XSDunion 1044
205
-ZZ Order Elements 299 Zachman Profile 308 Zachman Framework MDG Technology For, Enterprise Architect Zoom Control On Status Bar 138 Diagram From Toolbar 135 Diagram View 331
11
1869