Home
ArgoUML User Manual - The GNU
Contents
1. seessssessl 61 6 4 More on Class Diagrams To be written esee 61 6 4 1 The Class Diagram To be written eee 61 6 4 2 Advanced Class Diagrams To be written sees 61 6 5 More on Class Diagrams in ArgoUML To be written sess 61 6 5 1 Classes To be written sssssssssssesseen eme eee 61 6 5 2 Class Attributes and Operations To be written ssssss 62 6 5 3 Advanced Class Features esssesessseeseeeneneenem emen 62 6 6 Sequence and Collaboration Diagrams To be written esses 64 6 6 1 More on the Sequence Diagram To be written sess 64 6 6 2 The Collaboration Diagram To be written sees 65 6 6 3 Advanced Collaboration Diagrams To be written 65 6 7 Creating Collaboration Diagrams in ArgoUML To be written 65 6 7 1 Collaboration Diagrams To be written eene 65 6 7 2 Messages To be written esses em e mee 65 6 7 3 Advanced Collaboration Diagrams To be written 65 6 8 Statechart Diagrams To be written sess 65 6 8 1 The Statechart Diagram To be written sese 65 6 8 2 Advanced Statechart Diagrams To be written ssssss 65 6 9 Creating Statechart Diagrams i
2. context ClassA inv constraintOne self classAAttr gt 0 Along the top of the tab are a series of icons 3 Cancel Edit Constraint This exits the constraint editor without saving any changes and returns to the main Constraints tab af Check OCL Syntax This button invokes a full syntax check of the OCL written in the edit or If the syntax is valid the constraint is saved and control returns to the main Constraints tab If the syntax is not valid a dialog box explains the problem ip Warning Whether type checking is included should be configurable with the Config ure Constraint Editor button see below But ArgoUML V0 20 does always check and refuses to accept any constraint with the slightest error B Configure Constraint Editor This a dialog to configure options in the constraint editor It is also available in the main Constraints tab and is discussed in detail there see Sec tion 13 7 Constraints Tab To the right of the toolbar is a check box labeled Syntax Assistant unchecked by default which will enable the syntax assistant in the constraint editor If the syntax assistant is enabled six drop down menus are provided in a row immediately below the toolbar These provide standard templates for OCL that when selected will be inserted into the con straint being edited The syntax assistant can be made floating in a separate window by button 1 motion on the small divider area
3. 195 Top Level Artifact Reference icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Allows changeing the namespace for the datatype This is the package hier archy Modifiers Check box with entries Abstract Leaf and Root Abstract is used to declare that this datatype cannot be instantiated but must always be spe cialized m Note ArgoUML provides no mechanism for specializing datatypes so this check box is of little use Leaf indicates that this datatype can have no further sub types while Root indicates it is a top level datatype Tip i In the absence of specialization of datatypes within ArgoUML these have little value In effect all datatypes are both Root and Final Visibility Radio box with entries public private protected and package Records the visibility for the Datatype Client Dependencies Text area Lists any elements that depend on this datatype d Caution It is not clear that dependencies between datatypes makes much sense Supplier Dependencies Text area Lists any elements that this datatype depends on d Caution It is not clear that dependencies between datatypes makes much sense Generalizations Text area Lists any datatype that generalizes this datatype d Caution It is not clear that generalizing datatypes makes much sense
4. Chapter 9 The Toolbar 9 1 File operations These buttons have identical functions as their counterparts in the File menu New See for a full description Section 10 3 1 New aE E Open Project See for a full description Section 10 3 2 Open Project Save Project See for a full description Section 10 3 3 Save Project B Print See for a full description Section 10 3 10 E amp Print 9 2 Edit operations These buttons have identical functions as their counterparts in the Edit menu LI Remove From Diagram See for a full description Section 10 4 2 LI Remove From Dia Le L I 22 gram Navigate Back See for a full description Section 10 4 1 Select 2 Navigate Forward See for a full description Section 10 4 1 Select 9 3 View operations The Find button has identical behaviour as its counterpart in the View menu The Zoom button is a more luxurously version of the function in the View menu e Ab Find See for a full description Section 10 5 2 Ab Find T Zoom This is a different version of the menu item for zooming as described in Section 10 5 3 Zoom Clicking with button 1 on the zoom icon opens a panel as in the figure below Figure 9 1 The Zoom slider on the Toolbar 79 The Toolbar Once the panel is open the following actions are possible Clicking with button 1 on the knob followed by button 1 m
5. author Michiel version Vl 0 since Jan 2006 deprecated true public int newAttr public void new peration Any code you add will be lost that is not the intention of ArgoUML use an IDE instead The dropdown at the right allows selection of the output file This function is not very useful for lan guages that generate all code for a class within one file but serves its purpose for e g C where a h and cpp file are generated See the figure below Figure 13 13 A C example J J m I rem ToDo Item A Properties Documentation A Presentation amp Source 4 Constraints Stereotype A Tagged Values Checklist ifndeft Testis define Test 13 7 Constraints Tab Constraints are one of the extension mechanisms provided for UML ArgoUML is equipped with a powerful constraint editor based on the Object Constraint Language OCL defined in the UML 1 4 standard qd Caution The OCL editor implementation for ArgoUML V0 20 doesn t support OCL constraints for elements other than Classes and Features This is something of a general restriction of OCL Although the UML specification claims that there may be a constraint for every model element the OCL specification only defines classes interfaces and operations as allowable contexts It is not before OCL 2 0 that a more general definition of allowable contexts is introduced T
6. ee 302 xiv ArgoUML User Manual 21 2 2 Classifier Role Property Toolbar cece eee ceee cece eeeeeeen es 303 21 2 3 Property Fields For Classifier Role eeeeeesess 303 21 3 Association Role oor Ree OEC eR eR 306 21 3 1 Association Role Details Tabs seee 306 21 3 2 Association Role Property Toolbar 2 0 0 0 cece cece ceeeeeeeee teen ee 307 21 3 3 Property Fields For Association Role eese 307 21 4 Association End Role ssessssee HH 308 21 4 1 Association End Role Details Tabs eeeeese 309 21 4 2 Association End Role Property Toolbar ssesesess 309 21 4 3 Property Fields For Association End Role sss 310 PARONUECCEII E 311 21 541 Message Details Tabs iss ice ee ree RES 311 21 5 2 Message Property Toolbar seeR 312 21 5 3 Property Fields For Message eH 313 22 Activity Diagram Artifact Reference 2 0 0 0 cece cece eee ceee ce eeea tena cena eeneeeneeeneees 315 22 Me Mtrod cton erbe ER soe hee EE ERES 315 22 1 1 Limitations Concerning Activity Diagrams in ArgoUML 316 PAPAS INICIA 316 22 2 T Action State Details Tabs rebote rin 317 22 2 2 Action State Property ToolBar se ceeeee teen teen es 317 22 2 3 Property fields for action state 2 0 00 ee cece c ee ceeeceeeee teen
7. Namespace Drop down selector Records the namespace for the node instance This is the package hierarchy Stimuli sent To Be Written Stimuli Received To Be Written Residents Text box Lists any residents see Section 23 4 Component designed to be deployed on this type of node Button 1 double click navigates to the selected entry Classifiers Text field A Node instance type can be selected here d Caution ArgoUML V0 18 lists many more items in the dropdown list then solely Nodes Be ware to select Nodes only Component A component type represents a distributable piece of implementation of a system including software code source binary or executable but also including business documents etc in a human system Components may be used to show dependencies such as compiler and run time dependencies or inform ation dependencies in a human organization In the UML metamodel it is a sub class of Classifier A component is represented on a class diagram as a box with two small rectangles protruding from its left side labeled with its name Component Details Tabs The details tabs that are active for components are as follows ToDoItem Standard tab Properties See Section 23 4 2 Component Property Toolbar and Section 23 4 3 Property Fields For Com ponent below Documentation Standard tab Presentation Standard tab The Bounds field defines the bounding box for the component on
8. signer has added by hand are hidden in the to do pane 10 9 2 Design Issues This menu entry brings up a dialog box controlling how critics associated with a particular design area are to be handled see Figure 10 22 The dialog forDesign Issues Figure 10 22 The dialog for Design Issues W Design Issues Decision Priority Uncategorized Class Selection Behavior Naming Storage Planned Extensions State Machines Design Patterns Relationships Instantiatian ArgoUML categorizes critics according the the design issue they address There are 16 such categories The critics in each category are discussed in detail in the chapter on critics Chapter 15 The Critics 113 The Menu bar The sliders may be set for each category to control the critics that trigger for that category Setting a slider to Of f will disable all critics in that category and remove all associated to do items from the to do pane Setting a slider to a higher priority value will enable all critics at or above that priority level within the design issue category Of f being the lowest priority m Note The sliders are set by default to High for all design categories 10 9 3 Design Goals This menu entry brings up a dialog box controlling how design goals are to be handled see Fig ure 10 23 The dialog for Design Goals Figure 10 23 The dialog for Design Goals wi D
9. xii ArgoUML User Manual 19 3 Datatype iti e ers teed th ge BERI 230 18 4 Stereotype ccce b ett viole d diis ies 230 IAN Class MM D x x aI gt RU ae 230 18 51 Class Details Tabs eoe cce ree ere eno rte erre Po OPE 230 18 5 2 Class Property Toolbar sseeemHH 231 18 5 3 Property Fields For Class seseeH 232 18 6 Attribute sies ho mei pM IPDERUSD 235 18 6 1 Attribute Details Tabs ic cinere hme Red 235 18 6 2 Attribute Property Toolbar seem 236 18 6 3 Property Fields For Attribute sese 236 18 7 Operation otc esse tede rete hte testet esta ete tes eee e rex Eee end soe end 238 18 7 1 Operation Details Tabs esee HH 239 18 7 2 Operation Property Toolbar eee 240 18 7 3 Property Fields For Operation eeseeA 241 18 8 Parameter ised sortes deor ee Eze obere id Ped er ter ore p ER 243 18 8 1 Parameter Details Tabs sssee 243 18 8 2 Parameter Property Toolbar eA 244 18 8 3 Property Fields For Parameter sem 245 18 9 Signal eco tern e Pt Pere teer terere tere 246 18 9 1 Signal Details Tabs ssssee HMM 246 18 9 2 Signal Property Toolbar see 247 18 9 3 Property Fields For Signal eeeeA 248 18 10 Reception to be written sssssesseseeeee e Hmmm mememmenren 249 18
10. Inthe Export project to XMI dialog but sure to clear the selection of Save with diagram dataliteral gt 3 4 3 3 3 Using Models Created by MagicDraw 3 4 3 3 4 XMI Compatibility with other versions of ArgoUML Versions of ArgoUML prior to 0 19 7 supported UML 1 3 XMI 1 0 After this time the save format is UML 1 4 XMI 1 2 which is not backward compatible Newer versions of ArgoUML will read projects written by older versions but not vice versa If you might need to return to an older version of ArgoUML you should be careful to save a backup of your old projects Additionally if you write XMI files which need to be read by other tools you should take into account the different versions Most modern UML modelling tools should read UML 1 4 but you may have in house code generators or other tools which are tied to UML 1 3 3 4 3 3 5 Importing Other XMI Formats into ArgoUML XMI compatibility between UML modeling tools has improved over the years but you may still occa sionally run into problems ArgoUML will not read XMI files which contain UML 1 5 or UML 2 0 models but it should be able to open most UML 1 4 and UML 1 3 files If you find one that it can t open please file a bug report so that a developer can investigate 3 4 3 3 6 Generating XMI Format Select the command File Export as XMI and choose a filename 3 4 3 4 Code Generation 3 4 3 4 1 Code Generated by ArgoUML It is possible to compile your generated co
11. Possible artifacts on a use case diagram 17 8 1 Generalization Details Tabs The details tabs that are active for associations are as follows ToDoItem Standard tab Properties See Section 17 8 2 Generalization Property Toolbar and Section 17 8 3 Property Fields For Generalization below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab Note ce The values for the bounds of the generalization are downlighted since they have no meaning given that the generalization is tied to a particular actor and use case Source Standard tab You would not expect to generate any code for a generalization end so this is empty Tagged Values Standard tab In the UML metamodel Generalization has the following standard tagged val ues defined derived from the superclass ModelElement Values t rue meaning the generalization is redundant it can be formally derived from other elements or false meaning it cannot 216 Use Case Diagram Artifact Reference Note Derived generalizations still have their value in analysis to introduce useful names or concepts and in design to avoid re computation 17 8 2 Generalization Property Toolbar d GO up Navigate up through the package structure of the model For a generalization this will be the pack age containing the generalization ga N w Stereotyp This creates a new Stereotype see Section 16 5 St
12. Save changes to Untitled Yes When the menu is activated the standard filechooser appears see Figure 10 5 The dialog for Im port XMI Beware the fact that this file will only contain the model not any diagram layout Hence the new project will not contain any diagrams Figure 10 5 The dialog for Import XMI WI Import XMI Lookin EHNIEZTTHMENENNENNN T pS B 3 3 Floppy 4 Local Disk C My Recent O Shared Documents Documents 2 DVD RW Drive D 3 v HD15 F Desktop My Documents File name test xmi T My Computer Files of type XML Metadata Interchange xmi v 10 3 7 Export XMI This menu item allows to save the complete structure of the UML 1 4 model as a XMI file according the XMI V1 2 standard Beware the fact that this file will only contain the model not any diagram lay out Hence if the XMI file is reloaded with the File Open Project menu then the dia grams are lost When the menu is activated the standard filechooser appears see Figure 10 6 The dialog for Ex 86 The Menu bar port XMI Figure 10 6 The dialog for Export XMI Wi Export XMI Save in iy My Computer v 5 po 3 E JB 3 Floppy A s Local Disk C My Recent O Shared Documents Documents 2 DVD RW Drive D My Documents File name test Save My Computer Files of type XML Metadata Interchange xm
13. Ta New Sequence Diagram New Collaboration Diagram See for a full description Section 10 6 4 New Col laboration Diagram New Statechart Diagram See for a full description Section 10 6 5 New Statechart Diagram kA New Activity Diagram See for a full description Section 10 6 6 kA New Activity Dia gram New Deployment Diagram See for a full description Section 10 6 7 New Deploy ment Diagram 81 Chapter 10 The Menu bar 10 1 10 2 Introduction An important principle behind ArgoUML is that actions should be able to be invoked in whatever way the user finds convenient As a result many but not all actions that can be carried out on the menu can be carried out in other ways as well under ArgoUML A number of the common menu entries are also available through keyboard shortcuts It is also be possible to navigate the menu from the keyboard Each level of each menu is identified by a letter shown underlined in the menu or entry name from the moment the ALT key is pressed This se quence of letters while holding down the ALT key selects the entry The following is an explanation of why the menuitems are grouped as they are The File menu contains operations that affect on the whole project file All the items in this menu can be explained as such e The Edit menu is generally intended for editing the model or changing the content of a diagram It also contains functions t
14. When defining a literal all that matters is its name Other parts of the attribute prop erty sheet should be ignored Also the name of the literal must obey the rules for an Attribute or a critic will fire New Operation a This creates a new operation within the datatype navigating immediately to the properties tab for that operation gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype within the same package as the data type navigating immediately to the properties tab for that stereotype Tif Delete This deletes the datatype from the model 16 3 3 Property Fields For Datatype Name Text box The name of the datatype The primitive datatypes all have lower case names but there is no formal convention e Note Ce y m The default name supplied for a newly created datatype is the empty string Data types with empty string names will appear with the name anon Datatype in the explorer Stereotype Drop down selector Stereotype is provided by default with the UML standard stereotypes for clas sifier metaclass powertype process threadand utility Tip The stereotype enumeration should always be used for any created enumeration datatypes d Caution In ArgoUML version 0 18 the stereotype enumeration must be created before it can be used However by creating an Enumeration Literal the stereotype enumera tionis created automatically Navigate Stereotype
15. The sequence diagram is still rather under developed in ArgoUML The biggest difficulties are with the actions behind the stimuli These are purely textual in implementa tion and there is no way to link them back to their associated operations or signals Object An object is an instance of a class In the UML metamodel Object is a sub class of Instance With in a sequence diagram objects may be used to represent a specific instance of a class Unlike collabora tion diagrams see Chapter 21 Collaboration Diagram Artifact Reference sequence diagrams cannot show generic behavior between classifier roles 19 2 An object is represented on a sequence diagram in ArgoUML as a plain box labeled with the object name if any and class name separated by a colon As links with stimuli to and from other objects are added a time line grows down from the object This is thin where the object does not have control and thick where it does d Caution The current release of ArgoUML shows interactions between objects although the UML standard for sequence diagrams is for interaction between instances of any classifier However the actual implementation in ArgoUML permits any classifier to be used with the object and so the diagram can successfully represent instances of actors for example as well as classes 19 2 1 Object Details Tabs The details tabs that are active for objects are as follows ToDoItem Standard tab Properties
16. 3 4 2 The ArgoUML User Interface sese 18 344 3 O fpUt yh spes ED Na ipte tO A oues 26 3 4 4 Working With Design Critics sese 29 3 5 The Case Study To be written esses emen 32 4 Requirements Capture 5 tec tr Pe Te e TREE EUER Re Te PR a iE IRR 33 4 1 Introduction rr I pP NERIS MEER ia beceee sieges 33 4 2 The Requirements Capture Process ssssee mH 33 4 2 1 Process Steps i i rede teriserc repe Rce be Eve Pr ugue yet eis 34 4 3 Output of the Requirements Capture Process eee 34 4 3 1 Vision Document ettet me net hee Ke HRS 34 4 3 2 Use Case Diagram 4 aote More rete eed ropes 35 4 3 3 The Use Case Specification 34 5 5 teen sas te eie eere ater sere aa 40 4 3 4 Supplementary Requirement Specification seeeeesess 43 4 4 Using Use Cases in ArgoUML see HH 44 4AT ACOIS o xe been pre BE NON 44 44 2 USe C ses i seco et be eee este e Re eus 44 4 4 3 ASSOCIATIONS ioi iple RR UN sabi wedgesibens bose evcboeveeucoesaaeeees 46 4 44 Hierarchical Use Cases 5 een ht rtr I KPEE ETET 47 4 4 5 Stereotypes trece tenen eroe E E rero E EESE Ey SD Pe o Ye 48 4 4 6 Documentation roter t Io ERR RED se EUIS ee top e PCI rg 48 4 4 7 System Boundary Box ssssssss Her 49 4 5 Case Study 5 4 irre e EPI PER e Er dE PER REEE ISTO NEEE 49 45 1 Vasion Document oo aite etu
17. Receiver Text box Identifies the classifier role which receives this message Button 1 double click navigates to the receiver classifier role Activator Drop down selector Identifies the message which invokes the behavior that causes the sending of this message Button 1 click allows selecting the message Action Text box Lists the action see Section 20 3 Action this message invokes to raise a stimulus Button 1 double click navigates to the selected action button 2 gives a pop up menu with the fol lowing entry New Add a new action This item is downlighted if an action already exists 313 Collaboration Diagram Artifact Reference Predecessors Text area Identifies the messages the completion of whose execution enables this message Button 1 double click navigates to the selected message button 2 gives a pop up menu with one entry Add Opens a dialog box that allows to select any number of messages See figure below This entry is grayed out when no messages exist Figure 21 3 The add predecessors dialog box Ww Add Predecessors x Choices Selected enn 314 Chapter 22 Activity Diagram Artifact Reference 22 1 Introduction This chapter describes each artifact that can be created within an Activity diagram Note that some sub artifacts of artifacts may not actually themselves appear on the diagram There is a close relationship between this material and the Pr
18. X Description FI Does the name ClassABC clearly describe the class Is Class amp BC a noun or noun phrase FI Could the name Class amp BC be misinterpreted to mean something else Should ClassABC be its own class or a simple attribute of another class L1 Does ClassABC do exactly one thing and do it well L1 Could Class amp BC be broken down into two or more classes L1 Do all attributes of ClassABC start with meaningful values C Could you write an invariant for this class C Do all consmuctors stable the class invariant d Caution In the V0 20 release of ArgoUML this tab is not completely implemented E g the checks are not saved 168 Chapter 14 The To Do Pane 14 1 Introduction Figure 14 1 Overview of the to do pane shows the ArgoUML window with the to do pane high lighted Figure 14 1 Overview of the to do pane Wf critic model zargo org argouml cognitive critics ArgoUML DOR File Edit View Create Arrange Generation Critique Tools Help ReGS nhe lt gt 4 RERBBBRD E Package centric vt kd EB ar ap 4i y BAaF B O Order By Type N em sia z unmuren at CP elis gt xj newOperation void Bn a E crconstructorNeeded E amp EB crsingletonviolated ES crSingletonviolated E predicate2 ES crume E um from other critics amp E criticutiis _ ES void No known children predicate2Q boolean 73 Examples which lst s etR es our ce
19. from other critics o f CriticUtils void No known children bosdicnh boolean i setR es ource 3 Examples which atpresent 3 For critics 3 For critics buit 3 For general critics T anon Dependency T anon Dependency several other m I i E 1 anon Dependency packages lt lt create gt gt CrC onstructorl predicate2Q boolean predicated2 boolean V 4 anon Generalization M E l For critics children at pr Examples which CrConsider Singleton rSingletonViolated CrConstructorNeede come from i v 14 tems 4 ToDo Item Properties A Documentation Presentation Source Tagged Values C High T Generalization A TH Parent s0 Name child CompoundcCritic 73 Define Concrete Sub Cle C Add instance Variables t Stereotyre 4 7965 73 Add Associations to void Discriminator 3 Add Operations to void Y Namespace Acriticmodel T gt 74 Introduction At the top of screen is a menu bar which is described in Chapter 10 The Menu bar Below that is the toolbar as described in Chapter 9 The Toolbar The bulk of the window comprises four sub windows or panes Clockwise from top left these are the ex plorer see Chapter 11 The Explorer editing pane see Chapter 12 The Editing Pane details pane see Chapter 13 The Details Pane and to do pane see Chapter 14 The To Do Pane All 4 panes have a tool bar at the top in
20. see Section 12 5 Selection Action Buttons They appear at the sides top and bottom and indicate a relationship type Clicking on a Selection Action Button cre ates a new related artifact with the relation of the type that was indicated If the shift key is pressed when hovering the mouse over a selected artifact sometimes different handles are shown which stand for different relation types Where button 2 click has been used to bring up a context sensitive pop up menu see below button 1 click is used to select the menu entry required The pop up menu will be removed by any button 1 click outside of the menu area There are various more detailed effects which are discussed under the descriptions of the various tools see Section 12 3 The tool bar 12 2 2 Button 1 Double Click When used on the tool bar with a tool to add an artifact the selected artifact will be added multiple times to the drawing area once for each further button click until the tool is again selected or another tool chosen When used within the drawing area on an artifact that has sub components double click will select the sub component for editing creating it if necessary For example double clicking over an operation compartment of a class will select the operation Or cre ate one if there is none yet A special use is with package artifacts on the class diagram A double click on a package will navigate to the class diagram associated with a
21. which may reside on a node instance see Section 23 3 Node Instance In the UML metamodel ComponentIn stance is a sub class of Instance and is specifically an instance that is derived from a component A component is represented on a class diagram as a box with two small rectangles protruding from its left side labeled with its name A component instance is represented on a sequence diagram in ArgoUML as a box with two small rect angles protruding from its left side labeled with the component instance name if any and component 329 Deployment Diagram Artifact Reference type separated by a colon 2 Tip It is the presence of the colon and the underlining of the name and type that distin guishes a component instance from a component 23 5 1 Component Instance Details Tabs The details tabs that are active for component instances are as follows ToDoItem Standard tab Properties See Section 23 5 2 Component Instance Property Toolbar and Section 23 5 3 Property Fields For Component Instance below Documentation Standard tab Presentation Standard tab The Bounds field defines the bounding box for the component on the diagram Source Standard tab containing just the name of the component instance d Caution A component instance should not generate any code so having this tab active is prob ably a mistake Tagged Values Standard tab Note ce The UML Element metaclass from whi
22. 202 Stereotype Property Fields 202 Stereotype Property Toolbar 202 Stereotyping 346 Supplementary Requirement Specification 34 34 43 346 Suppliers of Dependency 260 SVG 14 346 System Boundary Box in Use Case Diagram 49 System Sequence Diagram 347 System Statechart Diagram 347 T Tagged Values of Association 251 of Association End 253 of Attribute 235 of Class 231 of Datatype 194 of Enumeration 198 of Operation 239 of Parameter 243 of Signal 247 To Do List 347 Toolbars 21 Tools Menu 21 Transition 347 Type of Association End 255 of Attribute 237 of Parameter 245 U UML 347 Use Case 33 34 44 209 347 Alternate Flows 41 42 Basic Flow 41 42 Hierarchy 38 Use Case Details Tabs 210 Use Case Diagram 35 206 347 Use Case Extend Relationships 212 Use Case Extension Points 212 Use Case Generalization 40 212 Use Case Goal 40 Use Case Include Relationships 213 Use Case Modifiers 212 Use Case Name 40 211 Use Case Namespace 212 Use Case Post conditions 41 Use Case Pre condition 41 Use Case Realization 345 Use Case Scenario 40 Use Case Specialization 40 212 Use Case Specification 34 40 347 Use Case Stereotype 212 Use Case Hierarchical 47 User Feedback 4 V View Menu 21 View Toolbar 22 Visibility of Association End 258 of Attribute 238 of Datatype 196 of Enumeration 200 of Model 192 367 Index of Operation 241 Vision Docum
23. ArgoUML will not enforce this Leaf indicates that this class cannot be further subclassed while Root indicates it can have no superclass It is possible for a class to be both Abstract and Leaf since its static operations may still be referenced e Active indicates that this class exhibits dynamic behavior and is thus associated with a state or activity diagram Visibility Radio box with four entries public private protected and package Indicates whether the class is visible outside the namespace Client Dependencies Text area Lists the depending ends of the relationship i e the end that makes use of the other end 233 Class Diagram Artifact Reference Button 1 double click navigates to the dependency and opens its property tab Supplier Dependencies Text area Lists the supplying ends of the relationship i e the end supplying what is needed by the other end Button 1 double click navigates to the dependency and opens its property tab Generalizations Text area Lists any class that generalizes this class Button 1 double click navigates to the generalization and opens its property tab Specializations Text box Lists any specialized class i e for which this class is a generalization Button 1 double click navigates to the generalization and opens its property tab Attributes Text area Lists all the attributes see Section 18 6 Attribute defined for this class Button 1 double
24. By convention transition names start with a lower case letter and use bumpy caps to divide words within the name Note ArgoUML does not enforce this naming convention StateMachine Text box Shows the name of the parent StateMachine for the transition Button 1 double click navigates to the StateMachine shown State Text box Shows the name of the parent State in case of an internal transition Button 1 double click navigates to the State shown Source Text box Shows the source state for the transition Button 1 double click navigates to the selected entry Target Text box Shows the target state for the transition Button 1 double click navigates to the selected entry Trigger Text box Shows the trigger event if any which invokes this transition Note ce J l UML does not require there to be a trigger e g when a guard is defined In this case the transition is taken immediately if the guard is true 287 Statechart Diagram Artifact Reference Button 1 double click navigates to the selected entry button 2 gives a pop up menu with three entries Select Add This Add an existing trigger event A sub menu opens with 4 choices Call Event Change Event Signal Event Time Event New Add a new trigger event A sub menu opens with 4 choices Call Event Change Event Signal Event Time Event Delete From Model Delete the trigger event from the model This feature is always down
25. Documentation Standard tab Presentation Standard tab The values for the bounds of the link are downlighted since they are determined by the objects connected Source Standard tab but with no contents Caution A link should not generate any code so having this tab active is probably a mistake Tagged Values Standard tab In the UML metamodel Link has the following standard tagged values defined persistence from the superclass Instance Showing the permanence of the state in formation associated with the link Values transitory state is destroyed when the link is destroyed and persistent state is preserved when the link is destroyed derived from the superclass ModelElement Values true meaning the link is redund ant it can be formally derived from other elements or false meaning it cannot ae Note Ce J m Derived links still have their value in analysis and design to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for a Classifier 19 9 2 Link Property Toolbar By CO up Navigate up through the package structure gy N w Stereotyp 276 Sequence Diagram Artifact Reference This creates a new Stereotype see Section 16 5 Stereotype for the selected link
26. If this is selected then ArgoUML will show the visibility indicators in front of e g attributes in the diagram In UML the notation is for public for private for protected and for package E g for an attribute it may show newAttr int Show multiplicity clear by default If this is selected then ArgoUML will show the multi plicity of e g attributes in the diagram In UML notation the multiplicity is shown between such as tnewAttr 0 int This setting has no impact on showing multiplicity near associ ationends Show initial value clear by default If this is selected then ArgoUML will show the initial value of e g attributes in the diagram In UML notation the initial value is shown e g like this 100 The Menu bar tnewAttr int 1 Show properties clear by default If this is selected then ArgoUML will show various prop erties between braces E g for an attribute it may show tnewAttr int frozen Show types and parameters set by default When this checkbox is unmarked attributes in classes are shown without type indication and operations are shown without parameters This fea ture may be usefull during the analysis phase of your project If all checkmarks in the Notation Tab are unchecked then e g for an attribute ArgoUML may show newAttr And for an operation newOperation Show stereotypes in explorer clear by default If this is selected the
27. In Diagram Where the artifact is visible on a diagram this lists the name of the diagram other wise it shows N A e Description Contains a description of the element artifact In ArgoUML V0 18 this seems to be restricted to the single entry docs Button 1 click on any row will give more information on that artifact by showing related artifacts in the bottom half see below Double click on any row describing an artifact on a diagram and that item and diagram will be selected The bottom half of the tab is a table labeled Related Elements and is a table with the same columns as the top half When an element artifact has been selected in the top half this table shows the details of any related elements i A Tip T Enlarging the dialog vertically shows that the Related Items part changes in size but not the Search results part However between them is a divider line and when hovering over this line the mouse pointer changes into a sizing icon and the border between these 2 areas can be moved up or down to redistribute the space in the window g Warning This dialog box is not modal which allows it to remain open while editing the model for easy navigation But the V0 22 implementation of ArgoUML does not inmediately update the dialog box with changes made to the found artifacts change of artifact name change of diagram name Deletion of a diagram does not stop the possibility to navigate to it 10 5 3 Zoom This en
28. Literals 200 Top Level Artifact Reference Text area Lists all the enumeration literals defined for this enumeration Button 1 double click nav igates to the selected literal button 2 click brings up a pop up menu with two entries Move Up Only available where there are two or more literals and the literal selected is not at the top It is moved up one Move Down Only available where there are two or more literals listed and the literal selected is not at the bottom It is moved down one 16 5 Stereotype Stereotypes are the main extension mechanism of UML providing a way to derive specializations of the standard metaclasses Stereotype is a sub class of GeneralizableElement in the UML metamodel Stereotypes are supplemented by constraints and tagged values New stereotypes are added from the property tab of almost any artifact Properties of existing stereo types can be reached by selecting the property tab for any artifact with that stereotype and using the navstereo button 4 within the property tab 16 5 1 Stereotype Details Tabs The details tabs that are active for stereotypes are as follows ToDoItem Standard tab Properties See Section 16 5 2 Stereotype Property Toolbar and Section 16 5 3 Property Fields For Stereo type below Documentation Standard tab See Section 13 4 Documentation Tab Source Standard tab This contains the representation of the stereotype on diagrams its
29. See Section 19 2 2 Object Property Toolbar and Section 19 2 3 Property Fields For Object be low Documentation Standard tab Presentation Standard tab The values for the bounds of the object notionally define the bounding box of the ob ject and its time line However if you change them it will have no effect and the original values will be reset when you next revisit the tab Source Standard tab but with no contents d Caution An object should not generate any code so having this tab active is probably a mis 268 Sequence Diagram Artifact Reference take Tagged Values Standard tab In the UML metamodel Object has the following standard tagged values defined persistence from the superclass Instance Showing the permanence of the state in formation associated with the object Values transitory state is destroyed when the object is destroyed and persistent state is preserved when the object is destroyed derived from the superclass ModelElement Values true meaning the object is re dundant it can be formally derived from other elements or alse meaning it cannot ME Note Derived objects still have their value in analysis and design to introduce useful names or concepts and in design to avoid re computation Note ce E The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab un
30. Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The tick box Display Operations allows the operation compartment to be shown the default or hidden This is a setting valid for only the current diagram The Bounds field defines the bounding box for the package on the diagram Source Standard tab This contains a template for the interface declaration and declarations of associated in terfaces Tagged Values Standard tab In the UML metamodel Interface has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed r Warning Since interfaces are by definition abstract they can have no instance and so this tagged value must refer to the properties of the realizing class semantics from the superclass Classifier The value is a specification of the se mantics of the interface e derived from the superclass ModelElement Values t rue meaning the interface is re dundant it can be formally derived from other elements or alse meaning it cannot m Note T Derived interfaces still have their value in analysis to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentat
31. Supplementary Material for the Case Study sse 349 AT Introduction ore rye eU eerte er nee eel ve rupe egre tenet 349 A 2 Requirements Documents To be written esses 349 A 2 1 Vision Document To be written esses 349 A 2 2 Use Case Specifications To be written see 349 A 2 3 Supplementary Requirements Specification To be written 349 B UME PESOULCES s iiec d Re RETO e ORE E REST ERRORES EROR UOTE MERE IE Ee TORIS EA ERES Un p 350 B 1 The UML specs To be written scesseseseee meme 350 B 2 UML related papers To be written sess 350 B 2 1 UML action specifications To be written esee 350 B 3 UML related websites To be written c ccc cec sec ec nec eeeecece ee m 350 C UML Conforming CASE Tools sssssIH HH eher herren 351 C 1 Other Open Source Projects To be written esee 351 C 2 Commercial Tools To be written esses em eee 351 D The CAP Module eder reU ea ere eeu e SERE EE Ree ages RR Rees 352 Ibn Modeling for G F E 352 Dl Classs tagged values ence qe ee ever 352 D I2 ACEP DUES tagged VALUES 5 ett cette deeem oer eee or ete Debout 353 D lj3 Parametets Ie n epi eI E n eer eis 354 DAA Preserved SectlOns i rco teme EPI CEPR EPI RR RASEI GAA STEA 354 E Limits and Shortcomings essesssee rE mere SEO EEES 356 E
32. Think about the objects in your scenarios Who creates the objects What happens when it is created and destroyed What is the lifetime of the object vs the lifetime of the information held be the object Now is the time to look at what information the objects hold compared to what is requested from other classes or computed on the fly Use the back of the card to record the attributes found for the classes Break you responsibilities into subresponsibilities and list the subresponsibilities indented under the main responsibilities Move the collaborators next to the subresponsibilities that use them After the Collaborator class on your card list the responsibility of the used class that is used in the col laboration After the collaborating responsibilities on your cards list the data passed back by the collab 59 Design orating object in parenthesis Redo the scenarios you did in the analysis phase but know take into consideration all of the design heur istics discussed Make up your own scenarios and try them 6 1 2 Package Diagram To be written To be written 6 1 3 Realization Class Diagrams To be written To be written 6 1 4 Sequence Diagrams and Collaboration Diagrams To be written To be written 6 1 5 Statechart Diagrams and Activity Diagrams To be written To be written 6 1 6 Deployment Diagram To be written To be written 6 1 7 Documents To be written System Architectur
33. This menu entry brings up a dialog box describing all the diagrams in the current project under ArgoUML Figure 10 19 The dialog for Goto Diagram wi Goto Diagram Results 6 items Type Description iclass diagram 1 0 nodes and 0 edges Use Case Diagram Use Case Diagram ATM use case diagram navi nodes and 5 edges Use Case Diagram ATM use case diagram inclu 12 nodes and 10 edges Use Case Diagram ATM use case diagram extend B nodes and 5 edges Use Case Diagram ATM use case diagram multi nodes and 5 edges 102 The Menu bar The dialog box contains a table with three columns and one row for each diagram in the current project A scroll bar gives access if the table is too long for the box Double button 1 click on any row will select that diagram in the editing pane The three columns are as follows e Type Lists the type of diagram Name Lists the name given to the diagram e Description Shows how many nodes and edges there are on the diagrams A node is a 2 D ar tifact and an edge is a connector artifact This dialog box is not modal which allows it to remain open while editing the model for easy naviga tion E d Warning The V0 22 implementation of ArgoUML does not inmediately update the dialog box with changes made to diagrams change of name addition of diagrams deletion of diagrams 10 5 2 amp Find This menu entry brings up a non modal dialog box for th
34. Use Case Specifications To be written To be written 4 5 6 Supplementary Requirements Specification To be written To be written 52 Chapter 5 Analysis Analysis is the process of taking the customer requirements and re casting them in the language of and from the perspective of a putative solution We are not actually trying the flesh out the detailed solution at this stage That occurs in the Design Phase see Chapter 6 Design Unlike the boundary between Requirements and Analysis Phases the boundary between Analysis and Design Phases is inherently blurred The key is that analysis should define the solution no further than is necessary to specify the requirements in the language of the solution The artifacts in Analysis generally represent a high level of abstraction Once again the recursive and iterative nature of our process means we will come back to the Analysis phase many times in the future 5 1 The Analysis Process There are three schools of thought on how Analysis should be approached The ontologist defines the data actually the metadata first and worries about processes later The true ontologist would prefer not to have to think about processes at all The phenomenonologist reverses this and favors process over data The panparadigmist considers both process and data to be equally important and addresses both from the start When it comes to being a purist the ontologist has the upper h
35. V Polygon Provides a polygon The points of the polygon are selected by button 1 click and the polygon closed with button 1 double click which will link the final point to the first point Spline Provide an open spline The control points of the spline are selected with button 1 and the last point selected with button 1 double click ce Ink Provide a polyline The points are provided by button 1 motion Use Case Diagram Specific Tools Several tools are provided specific to UML artifacts on use case diagrams The detailed properties of these artifacts are described in the section on use case diagram artifacts see Chapter 17 Use Case Dia gram Artifact Reference X Actor Add an actor to the diagram For convenience when the mouse is over a selected actor it displays two handles to left and right which may be dragged to form association relationships O Use Case Add a use case to the diagram For convenience when the mouse is over a selec ted use case it displays two handles to left and right which may be dragged to form association rela tionships and two handles top and bottom which may be dragged to form generalization and special ization relationships respectively Association Add an association between two artifacts selected using button 1 motion from the first artifact to the second There are 6 types of association offered here see Figure 12 4 The association tool selector association aggregation and comp
36. ately to the properties tab for that package n New Datatype This creates a new Datatype see Section 16 3 Datatype for the selected package navigating im mediately to the properties tab for that datatype gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected package navigating immediately to the properties tab for that stereotype Tif Delete Package 228 Class Diagram Artifact Reference Deletes the package from the model de Warning This is a deletion from the model not just the diagram To delete a package from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 18 2 3 Property Fields For Package Name Text box The name of the package The name of a package like all packages is by convention all lower case not containing any periods a Note By default a new package has no name defined The package will appear with the name anon Package in the explorer Stereotype Drop down selector Package is provided by default with the UML standard stereotypes for package facade framework metamodel stub topLevel systemModel Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 18 4 Stereotype Namespace Drop down selector Records the namespace for the package This is the package hierarchy Visibility Radio
37. d Caution 175 The Critics Following the Java and C convention most designers give their constructors the same name as the class which begins with an upper case character In ArgoUML this will trig ger this critic unless the constructor is stereotyped create It is important to remember that critics offer guidance and are not always correct ArgoUML lets you dismiss the resulting to do items through the to do pane see Chapter 14 The To Do Pane 15 4 16 Choose a Better Attribute Name Suggestion that an attribute has not followed the naming convention that attribute names begin with lower case letters 15 4 17 Capitalize Class Name Suggestion that a class has not followed the naming convention that classes begin with upper case let ters gr Note Although not triggering this critic the same convention should apply to interfaces 15 4 18 Revise Package Name Suggestion that a package has not followed the naming convention of using lower case letters with peri ods used to indicated sub packages 15 5 Storage Critics concerning attributes of classes The current version of ArgoUML has the following critics in this category 15 5 1 Revise Attribute Names to Avoid Conflict This critic is discussed under an earlier design issues category see Section 15 4 2 Revise Attribute Names to Avoid Conflict 15 5 2 Add Instance Variables to a Class Suggestion that no instance variables have bee
38. d Caution In the current release of ArgoUML the drop down selector will include all classifiers i e interfaces actors use cases and datatypes as well which is what is wanted on the diagram although it should properly be called an instance rather than an object In practice only instances of classes and actors make much sense Note In the current release of ArgoUML the same graphical presentation is used even if the object is actually representing an instance of an actor when a stick man would be more usual 19 3 Stimulus A stimulus is a communication between two instances and is generated by an action On a sequence dia gram a stimulus is associated with a link an instance of an association linking two object instances In the UML metamodel Stimulus is a sub class of Model Element The link see Section 19 9 Link associated with a stimulus is represented on a sequence diagram in ArgoUML as an arrow between the time lines of the object instances or the object head in the case of stimulus create described below labeled with the name of the action if any and the action separated by a colon The type of line and arrowhead depends on the type of action that generated the stimulus 270 Sequence Diagram Artifact Reference e Stimulus Call Generated by a call action itself the result of an operation of a class Shown as a solid line with a solid arrowhead to the time line of the object instance rec
39. immediately to the properties tab for that stereotype Tif Delete This deletes the Action from the model 20 3 3 Property Fields For Action Name Text box The name of the action By convention action names start with a lower case letter and use bumpy caps to divide words within the name cen Note ArgoUML does not enforce this naming convention Asynchronous Check box Indicates if a dispatched Stimulus is asynchronous or not Script Double text box with the expression that defines the action This field consists of two parts the first one contains the body script of the expression and the second one contains the particular pro gramming language used to write the expression Recurrence Double Text box An expression stating how many times the Action should be performed The field consists of two parts the first one for the expression the second one for the language it is written in Arguments 283 Statechart Diagram Artifact Reference Text box This is an ordered list with the arguments of the action Button 1 double click on any of the arguments navigates to that argument button 2 click brings up a pop up menu with two entries New Create a new argument and navigate to it Remove Deletes the argument from the model Instantiation only for CreateAction Text box This shows the classifier that gets instantiated by the create action Button 1 double click on the classifier navigates to that ar
40. or when typing a UML note comment Here SHIFT button 1 is used to select a range of text from the previously selected point Subsequent operations text entry and deletion will replace the selected text 8 2 6 Alt with Button 1 Panning When holding down the Alt key during button 1 down on a diagram movement of the mouse pans the drawing area The function is indicated by the mousepointer which turns into a crosshair with arrows 8 2 7 Ctrl with Button 1 Constrained Drag When holding down the Ctrl key while dragging with mouse button 1 down on a diagram the movement of the dragged element element will be constrained to one of eight cardinal directions North South East West NE SE SW NW 8 2 8 Button 2 Actions Button 2 actions are all dependent on the pane or menu bar and discussed in their various chapters 8 2 9 Button 2 Double Click Button 2 actions are all dependent on the pane or menu bar and discussed in their various chapters 8 2 10 Button 2 Motion Button 2 actions are all dependent on the pane or menu bar and discussed in their various chapters 8 3 General Information About Panes The four sub windows of the main ArgoUML window are called panes Clockwise from top left these are the explorer see Chapter 11 The Explorer editing pane see Chapter 12 The Editing Pane details pane see Chapter 13 The Details Pane and to do pane see Chapter 14 The To Do Pane At the top the editing pane is a
41. practice only Class DataType or Interface make any sense Note i A type must be declared it can be void but this only makes sense for a return para meter By default ArgoUML supplies int as the type the first time a parameter is created and thereafter the type of the most recently created parameter Default Value Text box with drop down This allows you to set an initial value for the parameter if desired this is optional The drop down menu provides access to the common values 0 1 2 and null d Caution This only makes sense for out or return parameters Kind Radio box with entries out in out return and in out The parameter is used only to pass values back from the operation e in out The parameter is used both to pass values in and to pass results back out of the opera tion 245 Class Diagram Artifact Reference Note This is the default for any new parameter return The parameter is a return result from the call Note LER j l There is nothing to stop you declaring more than one return parameter some pro gramming languages support this concept Tip The name of the return parameter does not appear on the diagram but it is con venient to give it an appropriate name such as the default return to identify it in the list of parameters on the operation property tab e in The parameter is used only to pass values in to the operation 18 9 Signal A signal is a specification
42. since its activation icon i is displayed Clicking on this icon will open the Medium folder An open folder is indicated by the icon But what is this To Do Pane anyway You haven t recorded anything yet that has to be done so where do these to do items originate The answer is simple and is at the same time one of the strong points of ArgoUML While you are working on your UML model your work is monitored continuously and invisibly by a piece of code called a design critic This is like a personal mentor that watches over your shoulder and notifies you each time he sees something questionable in your design 29 UML Based OOA amp D Critics are quite unobtrusive They give you a friendly warning but they do not force you into design principles that you don t want or like to follow Let us take a look at what the critics are telling us Click on the icon next to the Medium folder and click on the Re vise Package Name UntitledModel item Figure 3 10 ArgoUML Window Showing the Critic Item Re vise Package Name UntitledModel shows how your screen should now look Figure 3 10 ArgoUML Window Showing the Critic Item Revise Package Name UntitledModel W ArgoUML Miel x File Edit Yiew Create Diagram Arrange Generation Critique Tools Help xos gt BARBRA DB Q F5 untitledModel S Class Diagram 1 Usecase Diagram 1 9 Medium 4 Normally package names are written in all lower case with
43. these discus sions are always kept nice and friendly no flame wars and such so newbies should not hesitate and participate in them You ll always get a warm welcome there If you want to learn how the project is run and how to contribute to it go the the ArgoUML Web Site Developer Zone http argouml tigris org dev html and read through the documentation there The De velopers Cookbook was written specifically for this purpose 1 1 3 2 More on Infrastructure Besides the developer mailing list there s also a mailing for users see The ArgoUML Mailing List List http argouml tigris org servlets ProjectMailingListList where we can discuss problems from a user perspective Developers also read this list so highly qualified help will generally be provided Before posting to this list you should take a look at the user FAQ http argouml tigris org faqs users html maintained by Ewan R Grantham More information on ArgoUML and other UML related topics is also available on the ArgoUML web site http argouml tigris org maintained by Linus Tolke 1 2 Scope of This User Manual 1 2 1 Target Audience The current release of this document is aimed at experienced users of UML in OOA amp D perhaps with other tools who wish to transfer to ArgoUML Future releases will support designers who know OOA amp D and wish to adopt UML notation within their development process A long term goal is to support i those who are lear
44. 1 Diagram Canvas S Ze eet ee p e CER ERE iR Ee Oct Re ER ERR 356 E2 Missing functions cce rere e Re eye Ee estas eee YR ree Rede S RET 356 F Open Publication License ipsis Ro herr TSE GTE rere e REP SERE eS ERES 357 F 1 Requirements On Both Unmodified And Modified Versions 357 E2 Copynght e aoe E a E ose E D 357 E3 oSCOpe OP License T 357 F 4 Requirements On Modified Works 00 cece cece cece cece cn eece cece eeneeeneeeneeeneeeeees 357 F 5 Good Practice Recommendations esses eene hene 358 E 6 License Options ERN OBERE e eR es E Nes 358 F 7 Open Publication Policy Appendix sssee eens eeaeeeneeennees 359 G The CRC Card Methodology sesssssssse e eme em emere rennen 360 GI The Card rr ot rette o e EE ap ER E Ee PERF EE eee ess 360 69Min 361 r3 DRE SESSION ees naa an E honed cocdnan PAPIER ER REE E PIS RE VERI CAPERE I ER EVER IER 361 GA TREPLOCESS 7 ere erect sese e Loewe ti tet de verear eset EE fe eve uyt 361 lun 362 xvi Preface Software design is a cognitively challenging task Designers must manually enter designs but the primary difficulty is decision making rather than data entry If designers improved their decision mak ing capabilities it would result in better designs Current CASE tools provide automation and graphical user interfaces that reduce the manual work of entering a design and transforming
45. 1 double click navigates to the selected entry button 2 gives a pop up menu with two entries e New A submenu pops up with a selection of 7 kinds of states which can be added to the mod el The 7 kinds of states supported are Pseudo State Synch State Stub State Composite State Simple State Final State Submachine State ru Warning Using this way of adding states to the model is not a good idea since you will have to add the state to the diagram later This can be done by selecting it in the explorer and activating the pop up menu and selecting Add to Diagram It is 284 20 5 20 6 20 7 Statechart Diagram Artifact Reference advisable to use the toolbar of the diagram instead Delete From Model Delete the selected state from the model Concurrent Region A Concurrent Region is an orthogonal conjunctive component of a composite state allowing concur rency to be constructed A concurrent region is represented on the diagram by a tile of a composite state separated from other re gions by a dashed line ArgoUML currently only supports a horizontal division of a concurrent composite state in regions The description of the details panels of a concurrent region is identical to that of a composite state see Section 20 4 Composite State and so is not duplicated here Submachine State A submachine state is a syntactical convenience that facilitates reuse and modularity It is a shorthand
46. 1 motion A vertex can be removed by picking it up and sliding to one end of the line Multiple associations can be added in one go by using button 1 double click on the association icon Each subsequent button 1 down motion release sequence will join an actor to a use case Use button 1 on the select icon h to stop adding associations It is also possible to add associations using small handles that appear to the left and right of a use case or actor when it is selected and the mouse is over it Dragging the handle from a use case to an actor will create an association to that actor and similarly by dragging a handle from an actor to a use case Dragging a handle from a use case into empty space will create a new actor to go on the other end Sim ilarly dragging a handle from an actor into empty space will create a new use case It is possible to give an association a name describing the relationship of the actor to the use case al though this is not usually necessary This is done through the property tab of the association Such a name appears alongside the association near its center 4 4 3 1 Setting Navigation There are two ways of setting the navigation of an association 1 Use button 2 click on the association to bring up a context sensitive pop up menu The Navigab ility sub menu has options for bi directional navigation the default with no arrows and for navigability Actor Use Case and Use Case Actor 2 Use b
47. 1 motion is used to select items on that menu Button 1 motion also has an effect in the editing pane Over graphical artifacts it will move the arti fact to a new position Graphical artifacts that are selected show handles and these can be used for re sizing Where the artifact is some form of connector between other items button 1 motion other than at a handle will cause a new handle to be created allowing the connector to be articulated at that point Such new handles can be removed by moving them to the end of the connector 22 UML Based OOA amp D 5 Button 2 motion This is used to select items in a context sensitive menu popped up by use of but ton 2 click There are other more specific behaviors that will be encountered under the specific cases where they are used 3 4 2 7 Drawing Diagrams In general diagrams are drawn by using the edit pane toolbar to select the artifact desired and clicking in the diagram at the position required as described in Section 3 4 2 6 The Mouse That section also ex plains the use of the mouse for re sizing artifacts Artifacts that are already in the model but not on a diagram may be added to a diagram by selecting the artifact in the explorer using Add to Diagram from the drop down menu button 2 over that arti fact and then clicking button 1 at the desired location on the diagram As well as UML artifacts the Edit pane toolbar provides for general drawing artifacts rectan
48. 1 would mean that only one instance plays a role in this collaboration ArgoUML does not restrict you to the predefined ranges for multiplicity You can edit this field freely Base List The names of the classifiers of which this is a classifierrole Button 1 double click navigates to the classifier Button 2 click gives a pop up menu with the following entries Add Allows adding or removeing classifiers to the list To this end a dialog box pops up as shown in the figure below Figure 21 2 The add context dialog box 304 Collaboration Diagram Artifact Reference wi Add Remove Bases Choices Selected Actor Remove Allows removeing classifiers to the list without making use of the dialog box Generalizations Text area Lists any classifierrole that generalizes this classifierrole Button 1 double click navigates to the generalization and opens its property tab Specializations Text box Lists any specialized classifierrole i e for which this classifierrole is a generalization button 1 double click navigates to the generalization and opens its property tab Association End Role Text area Lists the association end roles that are linked to this classifier role Button 1 double click navigates to the selected entry Available Contents 305 Collaboration Diagram Artifact Reference Text area Lists the subset of modelelements contained in the base classifier which is used in the c
49. 15 13 1 Change Names or Signatures in lt artifact gt This critic is discussed under an earlier design issues category see Section 15 4 3 Change Names or Signatures in an Artifact 15 13 2 Class Must be Abstract Suggestion that a class that inherits or defines abstract operations must be marked abstract 15 13 3 Add Operations to lt class gt Suggestion that the specified class has no operations defined This is required for the class to be useful in a design 15 13 4 Reduce Operations on lt artifact gt Suggestion that the artifact class or interface has too many operations for a good design and is at risk of becoming a design bottleneck The Wizard of this critic allows setting of the treshold i e the maximum number of operations allowed before this critic fires d Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more operations until the critic fires again Restarting ArgoUML resets this number to its default 20 15 14 Code Generation Critics concerning code generation in ArgoUML The current version of ArgoUML has one critic in this category 15 14 1 Change Multiple Inheritance to interfaces Suggestion that a class has multiple generalizations which is permitted by UML but cannot be gener ated into Java code because Java does not support multiple inheritance 15 15 Stereotypes Critics concerning stereotyp
50. 16 9 Change Multiple Inheritance to interfaces sees 187 15 16 10 Make Edge More Visible s 187 15 17 Contdmmenb ee Seq e ores 187 15 17 1 Remove Circular Composition ee teen es 187 15 17 2 Duplicate Parameter Name sesee 187 15 17 3 Two Aggregate Ends Roles in Binary Association 187 15 17 4 Aggregate End Role in 3 way or More Association 188 15 17 5 Wrap Data Type 9d err treo xe ertet reete 188 3 Model Reference uo ge Ber eie eire tre ety tiny SOR ERI SSRe A VS 189 16 Top Level Artifact Reference 2 reete beret a xR ERR DRE 190 xi ArgoUML User Manual 16 1 Introduct Ont i ee Reg E ERES 190 16 2 The Model 2 oit beet piece 190 16 2 1 Model Details Tabs e re e lsat Mi t ese es 190 16 2 2 Model Property Toolbar sseeHH 191 16 2 3 Property Fields For The Model eA 191 16 3 Datatype 3 o EE EFIE e e Peer bas ead atts 193 16 3 1 Datatype Details Tabs eee cece eee HH 193 16 3 2 Datatype Property Toolbar sem 194 16 3 3 Property Fields For Datatype ssseHH 195 16 4 Enume ration nisso eir shatag Sea e Gotteusabertk sapeaag eas E eia 197 16 4 1 Enumeration Details Tabs 0 0 00 cece cece ence IRI 198 16 4 2 Enumeration Property Toolbar cece ceeeceeece teen eeen teen es 198 16 4 3 P
51. 20 2 1 State Details TabS euer ettet perpe 279 20 2 2 State Property Toolbar sissors eeen HH 280 20 2 3 Property Fields For State sss 280 20 3 ACION cios wrote teens connec ee rete aeter reor reete Soa phouen Ee FEE COPS E E ETE 282 20 3 1 Action Details Tabs sss 282 20 3 2 Action Property Toolbar sss 283 20 3 3 Property Fields For Action sesseeHH 283 20 4 Composite State isser erre ere Oe E rete prenne rte torre te RERO 284 20 5 Concurrent Region ien se rinn eset teer Te eer R DESSERTS HERR TE Ee 285 20 6 Submachine State 1 ertet mre rer E rei PR E ie 285 20 7 Stub State isis foc 285 20 8 Transition loo ed ea oe DR UE Nee M dee Ere Ibo casein 286 20 8 1 Transition Details Tabs sss 286 20 8 2 Transition Property Toolbar eA 286 20 8 3 Property Fields For Transition eR 287 20 0 3Bventos25 tege CU tea ettet eR ERI Reda 288 20 9 1 Event Details Tabs cm tet mi dedere Rede ore 288 20 9 2 Event Property Toolbar 20 0 0 cece ee ce eee MH 289 20 9 3 Property Fields For Event ssee iss sevse 289 20 10 Guard MEE EE 291 20 10 1 Guard Details Tabs iet ete reete deett 291 20 10 2 Guard Property Toolbar eseHMH 291 20 10 3 Property Fields For Guard eA 291 20 TH Pseudostatei oie tet bee Side orent ehe vto Sau lee ter E
52. 230 Package Specializations 230 Package Stereotype 229 Page Setup 89 Pane 345 Parameter 243 of Operation 242 Parameter Default Value 245 Parameter Details Tabs 243 Parameter Initial Value 245 Parameter Kind 245 Parameter Name 245 Parameter Property Fields 245 Parameter Property Toolbar 244 Parameter Stereotype 245 Parameter Tagged Values 243 Parameter Type 245 Parent of Generalization 218 Passive Actor 36 PGML 14 PNG 14 Post assumptions of Use Case 41 Post conditions of Use Case 41 Powertype of Generalization 218 Pre assumptions of Use Case 41 Pre condition of Use Case 41 Print 89 Problem Solving xvii 13 343 Properties of Datatype 193 of Enumeration 198 Property Fields for Association 251 for Association End 255 for Attribute 236 for Class 232 for Datatype 195 for Diagrams 205 for Enumeration 199 for Operation 241 for Parameter 245 for Signal 248 for Stereotype 202 Property Toolbar for Association 251 for Association End 254 for Attribute 236 for Class 231 for Datatype 194 for Enumeration 198 for Operation 240 for Parameter 244 for Signal 247 for Stereotype 202 PS 14 R Raised Signals of Operation 243 Realization Use Case 345 Reflection in Action xvii 13 345 Relationship Extend 39 47 343 Generalization 48 343 Include 38 47 344 Remove From Diagram 95 Requirement Capturing 33 Requirement Capt
53. 5 1 Architecture x66 User Name Michiel User Home Directory C Documents and Settings Michiel Current Directory C Documents and Settings Michiel My Doc JVM Total Memory 22810624 JVM Free Memory 10514952 Run Garbage Collector Copy to Clipboard Use this menu to describe the system that runs ArgoUML to the system manager or developer Pressing the button Run Garbage Collector not only runs the Java gargage collector but also refreshes the information shown To facilitate copy and paste into e g an email the button Copy Informa tion to System Clipboardis foreseen The Cancel button dismisses the dialog box 10 11 2 About ArgoUML This menu entry brings up the help window for ArgoUML see Figure 10 26 The help window for ArgoUML Figure 10 26 The help window for ArgoUML 118 The Menu bar wi About ArgoUML vPRE 0 20 beta1 ArgoUML ES G EZ E E S1 3 The window has six tabs which are selected by button 1 click By default the first tab Splash is shown Splash This displays the picture shown when ArgoUML starts up and the current version num ber Version This provides version information on the various packages that make up ArgoUML and some operating system and environment information Credits This details all those who have created ArgoUML including contact details for the vari ous module owners Contact Info This gives the major contact po
54. 8 The Generation Menu ssessseee eee eee eene hehe eene 110 10 8 1 Generate Selected Classes sesseIA 111 10 8 2 Generate All Classes sees m HI 112 10 8 3 Generate Code for Project To be Written esses 112 10 8 4 Settings for Generate for Project To be Written 112 10 9 The Critique Menu nere re tot neto PR HR eo eee E rnat ERR ub urea d 112 10 9 1 Toggle Auto Critiqu erret erret ere tht 112 10 9 2 Design ISSUES iisi e mtt ex Pte rr desea a ERR PORE PRRR eid 113 10 93 Design Goals iet herr repre rh pr PRA ETES ERES 114 10 9 4 Browse Critics esee cc ee rtrerte rere e dd e rore ree ave sense 115 10 10 The Tools Menu sseee m IH Hmmm hHe eene eere 117 10 11 The Help Menu onere eU EE eo rS eae hee ure Ed e E 117 10 11 1 System Information eem 118 10 11 2 About ArgoUML 1 cee cece cece HH 118 Td A ME EXDIOEGE errean ern tiber espe lena OS iit LIED 121 LE BU GIOCO REPRE 121 11 2 Mouse Behavior in the Explorer ssseee HH 121 11 2 1 Button 1 ChCE 3 teepr ete ee Eee pene Dreier ee tees 122 11 2 2 Button 1 Double Click esee 122 11 2 3 Ear 122 11 2 4 Button 2 ACHONS eere reete eorr rene ear expe eet n exe Eee roue Ee EU 122 11 2 5 Button 2 Double Click seeeem HH 122 11 3 Keyboard Behavior in the Explorer seeI 123
55. A graphical notation for OOA amp D processes standardized by the OMG ArgoUML supports UML 1 4 UML 2 0 is in the final stages of standardization and should be com plete during 2006 A UML notation for capturing requirements of a system or sub system See Section 4 3 Output of the Requirements Capture Pro cess for more information A UML diagram showing the relationships between Actors and Use Cases See Section 4 3 Output of the Requirements Capture Pro cess for more information The document capturing the detailed requirements behind a Use Case The top level document describing what the system being developed is to achieve The World Wide Web Consortium www w3c org 347 Glossary Waterfall Design Process XMI XML http www w3c org An international standardization body for all things to do with the World Wide Web A design process where each phase requirements analysis design build test is completed before the next starts See Section 3 2 1 Types of Process for more information XML Model Interchange format A format for file storage of UML models Currently incomplete since it does not carry all graphical layout information so must be supplemented by files carrying that information eXtensible Markup Language A simplified derivative of SGML defined by W3C 348 Appendix A Supplementary Material for the Case Study A 1 Introduction The case study requires
56. ArgoUML critic will complain about any join that does not follow this rule CallState Add a callstate to the diagram A call state is an action state that calls a single op eration Hence the name of the operation being called is put in the symbol along with the name of the classifier that hosts the operation in parentheses under it ObjectFlowState Add a objectflowstate to the diagram An objectflowstate is an object that is input to or output from an action 12 3 10 Deployment Diagram Specific Tools Ten tools are provided specific to UML artifacts on deployment diagrams The detailed properties of these artifacts are described in the section on deployment diagram artifacts see Chapter 23 Deployment Diagram Artifact Reference S Note Remember that ArgoUML s deployment diagrams are also used for component diagrams ET Node Add a node to the diagram For convenience when the mouse is over a selected node it displays four handles to left right top and bottom which may be dragged to form association rela tionships 139 12 4 The Editing Pane E Node Instance Add a node instance to the diagram For convenience when the mouse is over a selected node instance it displays four handles to left right top and bottom which may be dragged to form link relationships z Component Add a component to the diagram For convenience when the mouse is over a se lected component it displays four handle
57. Button 2 Actions citet ede etin eeeriven 170 14 2 4 Button 2 Double Click esses 170 14 3 Presentation Selection sess eee 170 T4 4 Item Count oeste t cr OE serv Sees Oe 171 I5 bhe GritlCS i iet roto t e eT ERO eim Ce TO el eee ete ES ear 172 15 1 Introd ction he reti t e iE EYES 172 153 T Terminology com nm hr eren eh rmn 172 15 12 Design Issues eee scettr tee erre eise Eee Manel atv pec Ree RENT 172 15 2 Uncategorized erc te POSEE Tb tite sta eR Ea E 172 15 3 Class Selection oo peer eere ote re oet Seven eet reped EE tede se dies 172 15 31 Wrap Data Type 5 oe ere ht EEE eer epi alison Seas 172 15 3 2 Reduce Classes in diagram diagram sess 173 15 3 3 Clean Up Diagram eese s ge E E CO Rees 173 JC REID 173 15 4 1 Resolve Association Name Conflict sess 173 15 4 2 Revise Attribute Names to Avoid Conflict usse 173 15 4 3 Change Names or Signatures in an Artifact 2 00 0 eee ee eee 174 15 4 4 Duplicate End Role Names for an Association 174 15 4 5 Role name conflicts with member sese 174 15 4 6 Choose a Name Classes and Interfaces s sess 174 15 4 7 Choose a Unique Name for an Artifact Classes and Interfaces 174 15 4 8 Choose a Name Attributes sse 175 15 4 9 Choose a Name Operations sseeeee m 1
58. Byte Char Double Float Integer Long Object Short String 24 3 2 Built In Classes From java math These are the classes within the java math package Big Decimal Big Integer 24 3 3 Built In Classes From java net These are the classes within the java net package URL 24 3 4 Built In Classes From java util These are the classes within the java util package e Vector Date Time 24 4 Built In Interfaces 337 Built In DataTypes Classes Interfaces and Stereotypes These are some useful interfaces corresponding to classes defined within the standard Java environ ment Interfaces have many of the properties of classes like all types and you can change them if you wish All these can be found in the java util subpackage of the main model These are the interfaces defined within the java util package For their definition consult the Java language and library references Collection Iterator List e Set Sorted Set 24 5 Built In Stereotypes UML 1 4 defines a large number of stereotypes of which most are supported by ArgoUML e e Caution Not all stereotypes defined by UML 1 4 appear in ArgoUML V0 20 due to the fact that they were not yet updated from previous versions of ArgoUML that only supported UML 1 3 Also there are limitations in the current implementation of some base elements The table below lists all stereotypes defined in UML 1 4
59. CrC onsiderSingletong create CiSingletonViolated create CrC onstructorl _ predicate2Q boolean predicate2Q boolean predicated boolean This is where all the diagrams are drawn In earlier versions of ArgoUML this pane went under a variety of names You may encounter drawing pane diagram pane or multi editor pane in other docu mentation that is still being updated The pane has a tool bar at the top and a single tab labeled As Diagram at the bottom which has no function in the 0 20 version of ArgoUML The main area shows the currently selected diagram of which the name is shown in the window title bar 12 2 Mouse Behavior in the Editing Pane Behavior of the mouse in general and the naming of the buttons is covered in the chapter on the overall user interface see Chapter 8 Introduction 128 The Editing Pane 12 2 1 Button 1 Click In the tool bar of the editing pane button 1 click is used to select a tool for creating a new artifact and adding it to the diagram see double clicking for creating multiple artifacts For most tools adding a new artifact to the diagram is achieved by moving the mouse into the editing area and clicking again In the main editing area button 1 click is used to select an individual artifact Many artifacts e g actor class show special handles when selected and the mouse hovers over them These are called Selection Action Buttons
60. Diagrams in ArgoUML To be written 6 7 1 Collaboration Diagrams To be written To be written 6 7 2 Messages To be written To be written 6 7 2 1 Actions To be written To be written 6 7 3 Advanced Collaboration Diagrams To be written To be written 6 8 Statechart Diagrams To be written To be written 6 8 1 The Statechart Diagram To be written More on this To be written 6 8 2 Advanced Statechart Diagrams To be written To be written 6 8 2 1 Actions To be written To be written 6 8 2 2 Transitions To be written To be written 6 8 2 2 1 Triggers To be written To be written 6 8 2 2 2 Guards To be written To be written 65 Design 6 8 2 2 3 Effectss To be written To be written 6 8 2 3 Pseudo States To be written To be written 6 8 2 3 1 Junction and Choice To be written To be written 6 8 2 3 2 Fork and Join To be written To be written 6 8 2 4 Hierarchical State Machines To be written To be written 6 8 2 5 Models for State History To be written Shallow v Deep To be written 6 9 Creating Statechart Diagrams in ArgoUML To be written 6 9 1 Statechart Diagrams To be written To be written 6 9 2 States To be written To be written 6 9 3 Transitions To be written To be written 6 9 4 Actions To be written To be written 6 9 5 Ad
61. Each phase may have one or more iterations e In the inception phase iterations tend to be heavy on the requirements analysis end while any build activity may be limited to emulation of the design within a CASE tool In the elaboration phase iterations tend to be completing the specification of the requirements and starting to focus on the analysis and design and possibly the first real built code In the construction phase iterations the requirements and analysis are more or less completed and the effort is mostly in design and build Finally in the deployment phase iterations are largely about build activity and in particular the test ing of the software 10 UML Based OOA amp D Note It should be clear that testing is an integral part of all phases Even in the early phases the requirements and design should be tested and this is facilitated by a good CASE tool We shall use an iterative process in this manual that is loosely based on the RUP 3 2 1 2 2 Iteration Size A good rule of thumb is that an iteration should take between six and ten weeks for typical commercial projects Any longer and you have probably bitten off too many requirements to do in one go You also lose focus on getting the next working iteration completed Any shorter and you probably haven t got enough requirements to make a significant advance In this case the additional overhead associated with an interation will become a problem T
62. Exit Action Do Activity Text box Shows the action if any to be executed while being in this state Button 1 click navigates to the selected action button 2 gives a pop up menu with two entries New Add a new Do Activity action of a certain kind This menu has the following submenus to select the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action Delete From Model Delete the Do Activity Deferrable Events Text box Shows a list of events that are candidates to be retained by the state machine if they trig ger no transitions out of the state not consumed Button 1 click navigates to the selected event button 2 on an event gives a pop up menu with the following entries Select Allows to add already existing events to the list of deferred ones New Add a new event of a certain kind This menu has the following submenus to select the kind of event Call Event Change Event Signal Event Time Event Delete From Model Delete the event Incoming Text area Lists all the transitions that enter this state Button 1 double click navigates to the selected entry Outgoing Text area Lists all the transitions that leave this state Button 1 double click navigates to the selected action Internal Transitions Text area Lists all the internal transitions of the state Such transitions neither exit nor enter the state so they do n
63. Export Resolution This allows you to artificially increase the resolution of pro duced graphics The advised setting is Standard To be able to use High or Extra High you usually need to start the Java virtual machine with extra memory e argo root The full path to the ArgoUML program i e the argouml1 jar file e argo home The ArgoUML home directory which contains the jar files needed by ArgoUML e S argo ext dir The directory holding ArgoUML extensions by default the ext sub e e fil e directory of the ArgoUML build directory java home The home directory of the Java Runtime Environment JRE user home The user s home directory Used for storing the argo user properties e user dir The directory from which ArgoUML was started Startup Directory The directory in which ArgoUML starts file searches etc 10 4 5 3 User Tab This t ab allows the user to record additional information of use to the system There are two text boxes provided Figu re 10 15 The dialog for Settings User wi Settings Preferences Full Name Michiel Email Address mvw tigris org Notations Appearance Modules Full Name Allows the user to record her full name 98 The Menu bar Email Address Allows the user to record his Email address This information is used when requesting to do help by Email 10 4 5 4 Appearance Tab This tab allows the user to specify
64. Headline Priority High More Info URL Offenders ES test Enter TODO Item here e Cy Resolve Item This pops up a dialog allowing the user to resolve the selected to do item see Figure 13 4 Dialog box for Resolve Item This is an important dialog because it allows you to deal with to do items in ways other than the recommendation of the to do item which is the whole point of their being advisory This dialog box is intended to be used for the following reasons deleting todo items that were manu ally created preventing a single critic to trigger on a single object and dismissing categories of todo items by lowering design concerns or design goals Figure 13 4 Dialog box for Resolve Item 151 The Details Pane ei Dismiss To Do Item This tem should be removed because tis nat af concern at the moment Reason given below Enter Rationale Here gt At the top are three radio buttons of which by default the last is selected labeled 1 It is not relevant to my goals 2 It is not of concern at the moment and 3 Reas on given below If you choose the third of these you should enter a reason in the main text box Tip If you wish to resolve a to do item that is generated by a critic by following its re commendations just make the recommended changes and the to do item will disappear of its own accord There is no need to use this dialog Warning The
65. It would not be usual to provide any code for an extension point since it is external to the system Note Ce The source tab content can be changed but this has no effect 213 Use Case Diagram Artifact Reference Tagged Values Standard tab In the UML metamodel ExtensionPoint has the following standard tagged val ues defined derived from the superclass ModelElement Values t rue meaning the extension point is redundant it can be formally derived from other elements or false meaning it cannot g Note Itis not clear how derived extension points could have any value in analysis 17 4 2 Extension Point Property Toolbar By GO up Navigate up to the use case which owns this extension point New Extension Point This creates a new Extension Point below the selected extension point navigating immediately to the properties tab of the newly created extension point gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected extension point nav igating immediately to the properties tab for that stereotype Tif Delete This deletes the selected extension point from the model 17 4 3 Property Fields For Extension Point Name Text box The name of the extension point Tip It is quite common to leave extension points unnamed in use case analysis since they are always listed within use cases and extend relationships by their location N
66. Item tab that step you through the changes Start the wizard by clicking the Next gt button Figure 13 5 Example of a Wizard By Priority w SItems 4 ToDo Item Ef High 5 Medium Ux Change the class name to start with an uppercase letter Neg 73 Add Instance Variables to test E Name Test 73 Add Associations to test 3 73 Add Operations to test Lx a Low The wizard is driven through the first three buttons at the bottom of the ToDo Item tab Back This will take you back to the previous step in the wizard Grayed out if this is the first step Next This will take you back to the next step in the wizard Grayed out if this is the last step Finish This will commit the changes you have made through the wizard in previous steps and or use the defaults for all next steps cg Note Not all to do items have wizards If there is no wizard all three buttons will remain grayed out The ArgoUML wizards are non modal i e once started you may select other todo items or do some other actions and all the while the wizard will remeber where it was so if you return to the todo item the wizard will indicate the same step it was on when you left it 13 2 2 The Help Button There is one remaining button at the bottom of the To Do Item tab labeled Help This will fire up a 153 The Details Pane browser to a URL with further help Warning In the V0 20 release of ArgoUML the
67. Lists the end of the relationship that is supplying what is needed by the other end Button 1 double click on a supplier will navigate to that element Clients Text area Lists the depending ends of the relationship i e the end that makes use of the other end Button 1 double click on a client will navigate to that element 18 14 Generalization Generalization is described under use case diagrams see Section 17 8 Generalization dm Note L E Within the context of classes generalization and specialization are the UML terms describ ing class inheritance 18 15 Interface An interface is a set of operations characterizing the behavior of an element It can be usefully thought of as an abstract class with no attributes and no non abstract operations In the UML metamodel it is a sub class of Classifier and through that GeneralizableElement An interface is represented on a class diagram as a rectangle with two horizontal compartments The top compartment displays the interface name and above it nterface and the second any operations Just like a class the operations compartment can be hidden 18 15 1 Interface Details Tabs The details tabs that are active for interfaces are as follows ToDoItem Standard tab 260 Class Diagram Artifact Reference Properties See Section 18 15 2 Interface Property Toolbar and Section 18 15 3 Property Fields For Inter face below Documentation
68. More About the ArgoUML Project 2 0 0 0 eee eeeeeeeeeneee ee es 2 1 2 Scope of This User Manual 22 teret tete tee Ee toe R Ee et ederet etie n 2 1 2 1 Target Audience ie eo oe ah Se ede PR RENI rU S e EROS 2 1 2 2 S o o1 EEN te Pee ene ern RP Er er eed reb rette tu 3 1 3 Overview of the User Manual 2 0 0 0 eee cece cece cece cee Hem emeret 3 1 3 1 Tutorial Manual Structure eerte nen einer b rie r E 3 1 3 2 Reference Manual Structure ssesssseeee HH 3 1 3 3 User Feedback iier e rr i eek PEPOT SEET RS 4 LA AsSumptlons est eroe dete rece Duero ye E E ne vee eI eue ete E S Te ge ee PUER UNS 4 1 T totialz ioo PRO ERE RE EU CREE 5 2 Introduction Deme written assay reor vedere te eser t eases Skene eon rear ese Pe ER TN PV 6 3 UME Based OO A amp D 2 6 i Dee reete ES tedl ye eee al hee aks 7 3 1 Background to UME a5 uror edem tee tien tss esee qe eene test 7 3 2 UML Based Processes for OOA amp D sese 7 3 2 1 Types GE PLOCESS d 8 3 2 2 A Development Process for This Manual sees 11 3 3 Why ArgoUML is Different iter e s 12 3 3 1 Cognitive Psychology sss 12 3 32 Open Standards ipie rt ster rer riter Pepe rap 13 3 3 3 100 Pure Jaya ise eee te eei ere sen e qs 15 3 344 OpenSource er Ger Ee a EE A EEES 15 JA ArgoUML Basics cusses eene eoe hee Eoo esed e epi este oy tene ete do EEEE EERS 15 3 4 1 Getting Started 5 edt Eo MEE 15
69. Note ArgoUML does not enforce this naming convention Stereotype Drop down selector Node is a type of classifier and so it has the default stereotypes of a classifier as defined in the UML standard ArgoUML provides the standard stereotypes for a classifier metaclass powertype process threadand utility Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Allows altering the namespace for the node This is the package hierarchy Modifiers Check box with entries abstract leaf and root abstract is used to declare that this node cannot be instantiated but must always be special ized The name of an abstract node is displayed in italics on the diagram leaf indicates that this node cannot be further specialized root indicates the node can have no generalization Generalizations Text area Lists any node that generalizes this node Button 1 double click navigates to the generalization and opens its property tab 324 Deployment Diagram Artifact Reference Specializations Text box Lists any specialized node i e for which this node is a generalization Button 1 double click navigates to the specialization and opens its property tab Residents Text box Lists any residents see Section 23 4 Component designed to be deployed on this type of node Button 1 double clic
70. Toolbar By GO up Navigate up through the package structure ae New Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected pseudostate navigat ing immediately to the properties tab for that stereotype Tif Delete from Model This deletes the pseudostate from the model we Warning This is a deletion from the model not just the diagram 20 11 3 Property Fields For Pseudostate Name Text box The name of the pseudostate By convention pseudostate names start with a lower case letter and use bumpy caps to divide words within the name Note g ArgoUML does not enforce this naming convention Tip Pseudostate names are not shown on the diagram and it is not usually necessary to give them a name Container Text box Shows the container of the pseudostate This is the state hierarchy Button 1 double click on the entry will navigate to the composite state that contains this state or the top level state that is the root of the state containment hierarchy Incoming Text area Lists any incoming transitions for the pseudostate Button 1 double click navigates to the selected transition Outgoing Text area Lists any outgoing transitions for the pseudostate 293 Statechart Diagram Artifact Reference Button 1 double click navigates to the selected transition 20 12 Initial State The initial state is a pseudostate see Section 20 11 Pseudostate repres
71. UML is itself an open standard ArgoUML throughout has tried to use open standards for all its inter faces The key advantage of adherence to open standards is that it permits easy inter working between applica 13 UML Based OOA amp D tions and the ability to move from one application to another as necessary 3 3 2 1 XML Metadata Interchange XMI XML Metadata Interchange XMI is the standard for saving the meta data that make up a particular UML model In principle this will allow you to take the model you have created in ArgoUML and im port it into another tool This clearly has advantages in allowing UML to meet its goal of being a standard for communication between designers The reality is not quite this good Prior to UML 2 0 the XMI file includes no information about the graphical representation of the models so diagram layout is lost ArgoUML gets round this by saving graphical information separate from the model see Section 3 4 3 1 Loading and Saving 3 3 2 2 Graphics Formats EPS GIF PGML PNG PS SVG e Encapsulated PostScript EPS http en wikipedia org wiki Encapsulated PostScript file is a Post Script file which satisfies additional restrictions These restrictions are intended to make it easier for software to embed an EPS file within another PostScript document Graphics Interchange Format GIF http en wikipedia org wiki GIF is a patent encumbered format although the patents will run
72. URLs are generally invalid The few that are valid have no information 13 3 Properties Tab Through this tab the properties of artifacts selected in the explorer or editing pane may be set The prop erties of an artifact may be displayed in one of the following ways 1 Selection of the artifact in the explorer or editing panes followed by selection of the properties tab in the details pane or 2 Navigation buttons cause different artifacts to be selected I e the Go Up button on the properties tab the Navigate Back and Navigate Forward buttons in the main tool bar and the vari ous menu items under Edit Select Figure 13 6 A typical Properties tab on the details pane shows a typical properties tab for an arti fact in ArgoUML in this case a class Figure 13 6 A typical Properties tab on the details pane 4 CT 4 ToDo Item amp Properties amp Documentation Presentation amp Source amp Constraints amp Tagged values Checklist Class A o JE Client Dependencies Attributes B instance Name SingletonClass Stereotype y singleton v euet Dependencies Association Ends singletonAE a AC Modifiers Generalizations 4 anon Generalization Operations singletonClass O Abstr Jleat Root J Active Visibility Specializations Owned Elements public O private O protected At the top left is the icon and name of the
73. a drop down selector labeled Priority The three options available are High Medium and Low and specify the priority category of any to do item generated by this critic This does not alter the priority of the already existing todo items only the newly generated ones Changing the pri ority of a critic is not saved persistently The next field is labeled MoreInfo and contains a URL pointing to further information with a button to the right labeled Go to navigate to that URL Warning In the V0 20 release of ArgoUML there is no further information available and the Go button is always grayed out and disabled The next field is labeled Description and is a text area with a detailed explanation of what this critic means If the text is too large for the area a scroll bar is provided to the right e Note Cer In this text area you may see the text oc1 self ocl which will be replaced by the name of the artifact in question when the critic is triggered The last field is a drop down selector labeled Use Clarifier with three options Always If Only One and Never Clarifiers are the icons and wavy red underlines drawn on the actual diagrams to indicate the artefact to which the critic refers The original intention was to make the mapping from critics to clarifiers some what customizable For example one user might make a Missing Name critic show a red underline another user might turn off the clarifier or have it draw a wavy
74. a parameter list to an operation or event has two or more parameters with the same name which is not permitted 15 17 3 Two Aggregate Ends Roles in Binary Associ ation Only one end role of a binary association can be aggregate or composite This a well formedness rule of the UML 1 4 standard Aggregation and composition are used to indicate whole part relationships and by definition the part end cannot be aggregate To fix this identify the part end of the association and use the critic wizard the Next gt button or manually set its aggregation to none using the button 2 pop up menu or the property sheet Composition more correctly called composite aggregation is used where there is a whole part relation ship that is one to one or one to many and the lifetime of the part is inextricably tied to the lifetime of the whole Instances of the whole will have responsibility for creating and destroying instances of the as sociated part This also means that a class can only be a part in one composite aggregation An example of a composite aggregation might be a database of cars and their wheels This is a one to four relationship and the database entry for a wheel is associated with its car When the car ceases to exist in the database so do its wheels Aggregation more correctly called shared aggregation is used where there is a whole part relationship that does not meet the criteria for a composite aggregation A
75. a real world broom moving backwards allows diagram elements to return to their original posi tion Growing the broom makes it possible to align objects that are not near each other When the mouse button is released the broom disappears and the moved objects are selected to make it easy to manipu late them further Figure 12 5 The Broom If the designer presses the space bar while using the broom objects on the face of the broom are distrib uted i e spaced evenly ArgoUML s broom supports three distribution modes objects can be spaced evenly across the space that they use objects can be packed together with only a small gap between them or objects can be distributed evenly over the entire length of the broom s face Repeatedly pressing the space bar cycles among these three distribution modes and displays a brief message indicating the 141 The Editing Pane operation just performed Space evenly Pack tightly Spread out and Original 12 5 Selection Action Buttons When the user selects an artifact ina UML diagram several handles are drawn on it to indicate that it is selected and to provide user interface affordances to resize the node ArgoUML also displays some selection action buttons around the selected artifact See the figure below for some examples of the handles and selection action buttons The two figures for a class differ because for creating the second one the shift key has been
76. action 19 3 1 Stimulus Details Tabs The details tabs that are active for stimuli are as follows ToDoItem Standard tab Properties See Section 19 3 2 Stimulus Property Toolbar and Section 19 3 3 Property Fields For Stimulus below Documentation Standard tab Style Standard tab The values for the bounds of the stimulus notionally define the bounding box of the stimulus and its time line However if you change them it will have no effect and the original val ues will be reset when you next revisit the tab Altering the Fill and Shadow entries has no effect Rather bizarrely you can set the Line entry and it will draw a line around the signal which is not a standard UML representation 271 Sequence Diagram Artifact Reference oh Tip To change the color of the line you should select the associated link click on it a little way from the stimulus and use its style tab see Section 19 9 Link d Caution In the current release of ArgoUML changing the values of the Bounds field is pos sible but will make only a temporary change to the position of the stimulus Selecting any artifact on the screen causes the stimulus to return to its original position and the original values to be restored Source Standard tab but with no contents d Caution A stimulus should not generate any code so having this tab active is probably a mis take Constraints Standard tab ArgoUML only supports cons
77. an associated classifier class datatype on a de ployment diagram 15 8 12 Missing return actions Suggestion that a sequence diagram has a send or call action without a corresponding return action 15 8 13 Missing call send action Suggestion that a sequence diagram has a return action but no preceding call or send action 15 8 14 No Stimuli on these links Suggestion that a sequence diagram has a link connecting objects without an associated stimulus without which the link is meaningless D Warning Triggering this critic indicates a serious problem since ArgoUML provides no mechanism for creating a link without a stimulus It probably indicates that the diagram was created by loading a corrupt project with an XMI file describing a link without a stimulus possibly created by a tool other than ArgoUML 15 8 15 Set Classifier Sequence Diagram Suggestion that there is an object without an associated classifier class datatype on a sequence dia gram 15 8 16 Wrong position of these stimuli Suggestion that the initiation of send call return message exchanges in a sequence diagram does not properly initiate from left to right 15 9 Relationships Critics concerning associations in ArgoUML The current version of ArgoUML has the following critics in this category 15 9 1 Circular Association Suggestion that an association class has a role that refers back directly to itself which is not permitted E Wa
78. and UML CASE tools Appendix F Open Publication License is a copy of the GNU Free Documentation License A future ambition is to provide a comprehensive index User Feedback Please tell us what you think about this User Manual Your comments will help us make improvements Email your thoughts to the ArgoUML Users Mailing List mailto users argouml tigris org In case you would like to add to the missing chapters you should contact the ArgoUML Developer Mailing List mailto dev Q argouml tigris org to check whether anyone else is working on this part You can sub scribe to either of the mailing lists via the ArgoUML web site http argouml tigris org 1 4 Assumptions This release of the manual assumes the reader is very familiar with UML already This is reflected in the sparseness of the description of UML concepts in the tutorial The case study is described but not yet fully realized throughout the tutorial This will be achieved in future releases of the manual Part 1 Tutorial Chapter 2 Introduction being written This tutorial will be taking you through a tour of the use of ArgoUML to model a system An ATM automated teller machine project has been chosen as a case study to demonstrate the various aspects of modeling that ArgoUML offers In subsequent sections we are going to develop the ATM ex ample into a complete description in UML The tutorial however will only walk you through part of it At
79. and revise it until they are ready to extend it further As developers work hands on with the design their mental model of the problem situ ation improves hence improving their design 345 Glossary Requirement Capturing Responsibility Scenario Sequence Diagram SGML Simula 67 State Statechart Diagram Stereotypes and Stereotyping Supplementary Requirement Specification SVG Requirement capturing is the process of identifying what the customer wants from the proposed system See Chapter 4 Re quirements Capture for a fuller description S ome behavior for which an object is held accountable A respons ibility denotes the obligation of an object to provide a certain beha vior A specific sequence of actions that illustrates behavior A UML Diagram showing the dynamic behavior as messages are passed between objects Equivalent to a Collaboration Diagram Which representation is appropriate depends on the problem under consideration See Section 5 4 Sequence Diagrams To be writ ten for more information Standard Graphical Markup Language Defined by ISO 8879 1986 A procedural programming language intended for simulation Noted for its introduction of objects and coroutines Within a Statechart Diagram a one of the possible configurations of the machine A UML Diagram showing the dynamic behavior of an active Object See Section 5 6 Statechart Diagrams To be written for m
80. associated with a model element capable of dynamic behavior such as packages classifiers including use cases and behavioral features Suitable model elements are e g a class a use case an operation and a package If such element is not selected at the time the New Activity Diagram menu is activated then an unattached ActivityGraph is created To obtain a well formed UML model you have to set the context of the ActivityGraph on its details pane 10 6 7 New Deployment Diagram This menu entry creates a blank deployment diagram and selects that diagram in the editing pane 5 Tip Artifacts from other namespaces packages can be added from the explorer by dragging or by using Add to Diagram from the button 2 pop up menu 10 7 The Arrange Menu This menu provides a range of functions to help in the alignment of artifacts on diagrams within the edit ing pane In general the menu function invoked is applied to any artifact or artifacts currently selected in the editing pane 10 7 1 Align This sub menu aligns the selected items There are seven alignment options provided 108 The Menu bar iE Align Tops Aligns the selected artifacts by their top edges Uo Align Bottoms Aligns the selected artifacts by their bottom edges A Align Rights Shortcut Ctrl R Aligns the selected artifacts by their right edges E Align Lefts Shortcut Ctrl L Aligns the selected artifacts by their left edges Z Align Horizontal Center
81. box with four entries public private protected and package Indicates whether the package is visible outside the package Modifiers Check box with entries abstract leaf and root Abstract is used to declare that this package cannot be instantiated but must always be spe cialized a Tip The meaning of abstract applied to a package if not that clear It might mean that the package contains interfaces or abstract classes without realizations This is probably better handled through stereotyping of the package for example facade Leaf indicates that this package can have no further subpackages 229 Class Diagram Artifact Reference Root indicates that it is the top level package Tip Within ArgoUML Root only meaningfully applies to the Model since all pack ages sit within the model This could be used to emphasize that the Model is at the top level Generalizations Text area Lists any package that generalizes this package Button 1 double click navigates to the generalization and opens its property tab Specializations Text box Lists any specialized package i e for which this package is a generalization button 1 double click navigates to the generalization and opens its property tab Owned Elements Text area A listing of all the packages classes interfaces datatypes actors use cases associations generalizations and stereotypes within the package Button 1 double click on any item l
82. case analysis Note ArgoUML does not enforce any naming convention for extend relationships Stereotype Drop down selector ArgoUML does not provide any stereotypes by default 221 Use Case Diagram Artifact Reference Tip Stereotyping does not have great value on an extend relationship GP Note ore There is no representation of the stereotype of an extend relationship on the diagram Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text box Records the namespace for the extend relationship This is the package hierarchy Button 1 Double Click on the entry will navigate to the package defining this namespace or the model for the top level namespace Base Use Case Drop down selector Shows the use case that is being extended by this extend relationship Button 1 click on this entry will give a drop down menu of all available use cases and an empty entry which may be selected by button 1 click Extension Drop down selector Show the use case that is doing the extending through this extend relationship Button 1 click on this entry will give a drop down menu of all available use cases and an empty entry which may be selected by button 1 click Extension Points Text box If this use case is or can be extended this field lists the extension points for the use case cn Note Exten
83. centric In this view all modelelements are shown according their composition in the UML metamodel This perspective shows far more modelelements then all others it does not hide anything Hence this view is not so user friendly but very suited for the UML specialist 11 5 Configuring Perspectives The explorer is designed to be user configurable to allow the designer to view in his or her preferred way 11 5 1 The Configure Perspectives dialog button 1 click on the Configure Perspectives icon at the top left of the explorer brings up the E explorer perspectives dialog see Figure 11 2 The Configure Perspectives dialog box p persp g 8 8 p 8 Figure 11 2 The Configure Perspectives dialog box 124 The Explorer Wi Configure Perspectives Perspectives 8 Package centric Package centric Class centric Diagram centric Duplicate Inheritance centric Class Associations Residence centric State centric Transitions centric Restore Defaults Remove Move Up Move Down Rules Library 35 Selected Rules 28 AssociationRole Messages Behavioral Feature gt Statechart diagram Class Associated Class Behavioral Feature Statemachine Class Navigable Class z Class gt Attribute Class gt State Machine Classifier BehavioralFeature Class gt Summary Classifier gt Collaboration Classifier gt Specialized Classifier Classifier gt Collaboration Classifier Statemachine Classi
84. class has no associations connecting it to other artifacts This is required for the artifact to be useful in a design 15 9 5 Remove Reference to Specific Subclass This critic is discussed under an earlier design issues category see Section 15 6 3 Remove Reference to Specific Subclass 15 9 6 Reduce Associations on lt artifact gt Suggestion that the given artifact actor use case class or interface has so many associations it may be a maintenance bottleneck The Wizard of this critic allows setting of the treshold i e the maximum number of associations al lowed before this critic fires D Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more associations until the critic fires again Restarting ArgoUML resets this number to its default 7 15 9 7 Make Edge More Visible This critic is discussed under an earlier design issues category see Section 15 7 14 Make Edge More Visible 183 The Critics 15 10 Instantiation Critics concerning instantiation of classifiers in ArgoUML The current version of ArgoUML has no critics in this category 15 11 Modularity Critics concerning modular development in ArgoUML The current version of ArgoUML has the following critics in this category 15 11 1 Classifier not in Namespace of its Association One of the well formedness rules in UML 1 4 for associations is
85. clicking on it All elements are optional and if left unspecified the old values will be preserved A stereotype can be given between any two elements in the line in the format lt lt stereotype gt gt The following properties are recognized to have special meaning abstract concurrency concurrent guarded leaf query root and sequential The visibility is 4 or corresponding to public protected private visibility or pack 238 Class Diagram Artifact Reference age visibility respectively static and final optionally appear if the operation has those modifiers Any operation declared static will have its whole entry underlined on the diagram There may be zero or more entries in the parameter list separated by commas Every entry is a pair of the form name type The return type expression is the type UML datatype class or interface of the result returned Finally the whole entry is shown in italics if the operation is declared abstract 18 7 1 Operation Details Tabs The details tabs that are active for operations are as follows ToDoItem Standard tab Properties See Section 18 7 2 Operation Property Toolbar and Section 18 7 3 Property Fields For Opera tion below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The Bounds field does allow editing but the changes have no effect Source Standard tab This contains a declaration
86. components sees 181 15 8 8 Interfaces normally are inside components ssssss 181 15 8 9 Objects normally are inside components eseseeesees 181 15 8 10 LinkEnds have not the same locations eene 181 15 8 11 Set classifier Deployment Diagram eese 182 15 8 12 Missing return actions essee HH 182 15 8 13 Missing call send action eese 182 15 8 14 No Stimuli on these links eR 182 15 8 15 Set Classifier Sequence Diagram ee 182 15 8 16 Wrong position of these stimuli eee 182 15 9 Rel tionships nesies e eee tereti bere eie ie Prep emer beer deri ed 182 15 9 1 Circular Association i oie certet hr ERI ERI Ra 182 15 9 2 Make association Navigable sse 183 15 9 3 Remove Navigation from Interface via association 183 15 9 4 Add Associations to artifact sssssse teenies 183 15 9 5 Remove Reference to Specific Subclass eeeeseesess 183 15 9 6 Reduce Associations on artifact sssssse 183 15 9 7 Make Edge More Visible sese 183 15 10 InstantidtiOm eoe ee nor ot ete tee edo S te rond ee tote ete edes tone ede ences Pe 184 15 3 Modulatity eo eee Lr tee ee eec ber ep dined tay Sealey ERI E Pera ES 184 15 11 1 Classifier not in N
87. default state with a transition arrow just like the initial pseudostate does This transition points to the substate that will become active when there is no history When the container composite state has been active before i e when there is history the substate that was active when the container state was exited becomes active again When placed within a multi level hierarchy of composite states the deep history remembers the history for all states recursively which are contained in the history pseudostate container It does restore any substates no matter how deep in the hierarchy A deep history is represented on the diagram as a circle containing the symbols H 297 Statechart Diagram Artifact Reference 20 20 Synch State A synch state is for synchronizing concurrent regions of a state machine It is used in conjunction with forks and joins to insure that one region leaves a particular state or states before another region can enter a particular state or states The firing of outgoing transitions from a synch state can be limited by spe cifying a bound on the difference between the number of times outgoing and incoming transitions have fired In the UML metamodel Synch is a child of StateVertex A synch state is shown as a small circle with the upper bound inside it The bound is either a positive in teger or a star for unlimited Synch states are drawn on the boundary between two regions when possible 20 20 1
88. does not enforce this naming convention Container Text box Shows the container of the state This is the state hierarchy Button 1 double click on the entry will navigate to the composite state that contains this state All states are at least contained by the otherwise hidden top level state named top that is the root of the state containment hierarchy Entry Action Text box Shows the name of the action if any to be executed on entry to this state Note This field shows the name of the action while on the diagram the expression of the ac tion is shown 280 Statechart Diagram Artifact Reference Button 1 double click navigates to the selected entry button 2 gives a pop up menu with two entries New Add a new Entry action of a certain kind This menu has the following submenus to select the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action Delete From Model Delete the Entry Action Exit Action Text box Shows the action if any to be executed on exit from this state Button 1 click navigates to the selected action button 2 gives a pop up menu with two entries New Add a new Exit action of a certain kind This menu has the following submenus to select the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action Delete From Model Delete the
89. e Nonne 95 NOS The View Menu reete bete Er dresse See oe E xe EYE e me TRET 102 LUN NGC SNLIucum m 102 Vil ArgoUML User Manual 10 5 2 Ad FUNG dp EUER 103 IA eS RE EEA 105 10 54 Adjust Gid E 106 10 5 5 Adj st Grid Snap otc reniras EE en Ens rrt erra EEE 106 10 5 6 Page Breaks ssensesarisreneccrnenretir neina k Eae EEEE end 106 10 6 The Create Menu eee eetoee ee etre eere rer erue rre nu eer Rev eer EIEEE 107 10 6 1 New Use Case Diagram see 107 10 6 2 New Class Diagram tese te ideran bebes lue eee Re eO RUE 107 10 6 3 m New Sequence Diagram sesseee 107 10 6 4 amp New Collaboration Diagram esee 107 0 6 Collaboratio g 0 10 6 5 ej New Statechart Diagram s see 108 10 6 6 3 New Activity Diagram see 108 10 6 7 a4 New Deployment Diagram see 1 0 6 ploy g 08 10 77 The Arrange Menu aeree thee Rhen eere ien Rabe e E 108 INANE NIU P 108 10 72 Distrib te eror pisnes ir rror rex nEn Ee EEE DEP Rege o opo RE Rba e Er tees 109 LL M ASSMHCOACOGE 109 10 74 uni enirir E a R E EE E aa 110 10 7 5 Set Preferred Size eoe rre tme ree tede od t EE EEEE EEN 110 10 7 6 Toggle Auto Resizing seem 110 1077 Layout 22er cederet eoe Presse ve y aeree tucas ihre Rdbes eoe aee veu nibo s PUPA EPIO 110 10
90. effect e g Call Action defined a slash fol lowed by the expression of the action Transition Details Tabs The details tabs that are active for transitions are as follows ToDoItem Standard tab Properties See Section 20 8 2 Transition Property Toolbar and Section 20 8 3 Property Fields For Trans ition below Documentation Standard tab Presentation Standard tab The values for the bounds of the transition are downlighted since the position of the transition is defined by its end points Stereotype Standard tab In the UML metamodel Transition has no stereotypes defined by default Tagged Values Standard tab In the UML metamodel Transition has no standard tagged values defined Checklist Standard tab for a transition 20 8 2 Transition Property Toolbar By GO up 286 Statechart Diagram Artifact Reference Navigate up in the hierarchy to the parent state machine gs w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected transition navigating immediately to the properties tab for that stereotype Tif Delete This deletes the transition from the model e Warning This is a deletion from the model not just the diagram To delete a transition from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 20 8 3 Property Fields For Transition Name Text box The name of the transition
91. ends are described under class diagrams see Section 18 12 Association End 17 7 Dependency Dependencies are described under class diagrams see Section 18 13 Dependency d Caution Dependency has little use in use case diagrams It is provided because earlier versions of ArgoUML used it incorrectly to implement include and extends relationships 215 Use Case Diagram Artifact Reference 17 8 Generalization Generalization is a relationship between two use cases or two actors Where A is a generalization of B it means A describes more general behavior and B a more specific version of that behavior Examples for a travel agent sales system might be the use case for making a booking as a generalization of the use case for making a flight booking and a salesman actor being a generalization of a supervisor actor since supervisors can also act as salesmen but not vice versa Generalization is analogous to class inheritance within OO programming Note Ce It is easy to confuse extends relationships between use cases with generalization However extends is about augmenting a use case s behavior at a specific point Generalization is about specializing the behavior throughout the use case Within the UML metamodel Generalization is a sub class of Relationship Generalization is represented as an arrow with white filled head from the specialized use case or actor to the generalized use case or actor see Figure 17 1
92. evaluate the current model according to various good design criteria There is one critic for every design criterion The output of a critic is a critique a statement about some aspect of the model that does not appear to follow good design practice Finally a critique will generally suggest how the bad design issue it has identified can be rectified by raising a fo do item 15 1 2 Design Issues ArgoUML categorizes critics according the the design issue they address some critics may be in more than one category At present there are 16 such categories Within this manual the descriptions of critics are grouped in sections by design issue 15 2 Uncategorized These are critics that do not fit into any other category ArgoUML has no critics in this category Maybe some will be added in later versions 15 3 Class Selection These are critics concerning how classes are chosen and used ArgoUML has the following critics in this category 15 3 1 Wrap DataType DataTypes are not full classes within UML 1 4 They can only have enumeration literals as values and only support query operations that is operations that do not change the DataType s state 172 The Critics DataTypes cannot be associated with classes unless the DataType is part of a composite black dia mond aggregation Such an association relects the tight binding of a collection of DataType instances to a class instance In effect such a DataTy
93. for an ATM system showing navigation 36 Requirements Capture Maintain ATM Bank Engineer Local Bank Official i Central Computer i Customer 4 3 2 2 Multiplicity It can be useful to show the multiplicity of associations between actors and use cases By this we mean how many instances of an actor interact with how many instances of the use case By default we assume one instance of an actor interacts with one instance of a use case In other cases we can label the multiplicity of one end of the association either with a number to indicate how many instances are involved or with a range separated by two periods An asterisk is used to indicate an arbitrary number In the ATM example there is only one central computer but it may be auditing any number of ATM uses So we place the label 0 at the use case end There is no need for a label at the other end since the default is one A local bank will have up to three officials authorized to unload and load ATM machines So at the actor end of the relationship with the use case Maintain ATM we place the label 1 3 They may be deal ing with any number of ATM machines so at the other end we place the label 0 There may be any number of customers and there may be any number of ATM systems they could use So at each end of the association we place the label O Figure 4 3 Use case diagram for an ATM system showing multiplicity sh
94. for the operation Constraints Standard tab There are no standard constraints defined for Operation within the UML metamod el Tagged Values Standard tab In the UML metamodel Operation has the following standard tagged values defined semantics The value is a specification of the semantics of the operation derived from the superclass ModelElement Values t rue meaning the operation is re dundant it can be formally derived from other elements or alse meaning it cannot Note CER l Derived operations still have their value in analysis to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the 239 Class Diagram Artifact Reference tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for an Operation 18 7 2 Operation Property Toolbar By GO up Navigate up through the package structure New operation L This creates a new operation within the owning class of the current operation navigating immedi ately to the properties tab for that operation Tip This is a very convenient way to add a number of operations one after the other to a class T New parameter This creates a new parameter for the operation navigating immediately to the properties tab for that parameter EE raised signal This creates a new r
95. gram Include Relationship Iterative Design Process Java Mealy Machine Method of a Class or Object Moore Machine generalized Use Cases where the generalized Use Cases are partic ular examples of the generalizing Use Case Graphical User Interface A Statechart Diagram that contains subsidiary statechart diagrams within individual States A relationship between two Use Cases where the included Use Case describes part of the functionality of the including Use Case A design process where each all phases requirements analysis design build test are tackled partially in a series of iterations See Section 3 2 1 Types of Process for more information A fully object oriented programming language introduced by Sun Microsystems More strongly typed than C it compiles to an in terpreted code the Java Virtual Machine JVM The JVM means that Java code should run on any machine that has implemented the JVM The most significant component of Java was integration of the JVM into web browsers allowing code Applets to be download and run over the web ArgoUML is written in Java A Statechart Diagram where actions are associated with States A method of a class or object is a specification of behavior encapsu lated by that object A Statechart Diagram where actions are associated with Transitions 344 Glossary Object OCL OMG OOA amp D Opportunistic Design Pane Realiza
96. green underline or a blue questionmark Critics with their clarifier s disabled would still produce feedback that is listed in the to do pane d Caution In the V0 20 release of ArgoUML this selector has no function whatsoever It is for future development 116 The Menu bar Underneath the fields are three buttons in a horizontal row e Wake It is possible to snooze a critic from the to do pane see Chapter 14 The To Do Pane which makes the critic inactive for a period If the critic has been snoozed this button is enabled and will wake the critic back up again Otherwise it is grayed out 2 Tip You can tell a snoozed critic because in the list on the left it will be indicated in the third column Configure This button is for configuring the critic D Caution In the V0 20 version of ArgoUML this function is not implemented and this button is always grayed out It is for future development Edit Network Right now critics are implemented in java code That means end users cannot add new critics The idea of a critic network is that they would be a state machine like diagram with several steps Each step would express a condition which collectively with the other steps associated with that critic articulates the rule that the critic is providing If the rule fires then remaining steps would define the steps of the wizard to help the user fix the problem The ideas behind this are discussed in Chap
97. ignore the tagged value Class tagged values constructor true generates a default constructor for the class false default no default constructor is generated unless it is explicitly modeled with the create stereotype header incl Name of the file to include in the header a Note If we desire to have multiple headers included this way just use multiple tagged val ues with header_incl as the tag 352 The C Module Other tagged values used for C modeling may also be used this way This note won t be repeated in those cases source_incl Name of the file to include in the source cpp file typedef_public source type type name creates typedef line in the public area of the class with typedef source type type name gt typedef protected Same as typedef public but in protected area typedef private Same as typedef_public but in the private area typedef_global_header Same as typedef_public but in the global area of the header typedef_global_source Same as typedef_global_source but in the source file TemplatePath Directory will search in the specified directory for the template files header template and cpp template which are placed in top of the corresponding file The following tags in the template file are replaced by model values IFILENAMEI IDATEI IYEARI IAUTHORI IEMAILI If no such tag is specified the templates are searched in the subdirectory
98. last at append pre pend and subSequence The remainder of the tab comprises a writable text area containing the text to be edited The mouse but tons have their standard behavior within an editable text area see Section 8 2 General Mouse Behavior in ArgoUML In addition cut copy and paste operations may be invoked through the keyboard shortcuts Ct r1 X Ctrl C and Ctrl V respectively 13 8 Stereotype Tab This tab shows the available and applied stereotypes for the currently selected modelelement It consists of 2 panels and 2 buttons The buttons allow to move the stereotypes from one list to the other Figure 13 17 An example of a stereotype tab for a class lt lt utility gt gt Test newwAtt int newOperationO void gt TT 4 ToDo Item A Properties Documentation 4 Presentation Source A Constraints Stereotype 4 Tagged Values A Checklist Available Stereotypes Applied Stereotypes 2 implementationClass Class utility Classifier metaclass Classifier powertype Classifier process Classifier thread Classifier type Class In the lists between the baseclass of the stereotypes is shown E g in the figure above the thread Classifier stereotype may be applied to all types of classifiers such as Class UseCase 166 The Details Pane 13 9 Tagged Values Tab Tagged values are another extensi
99. letter with words separ ated by bumpy caps or Note 232 Class Diagram Artifact Reference The ArgoUML critics will complain about class names that do not have an initial cap ital Stereotype Drop down selector Class is provided by default with the UML standard stereotypes for Class implementationClass and type and for Classifier metaclass powertype process thread and utility Tip One stereotype that is not part of the UML standard but is widely used is Singleton used to distinguish classes which have a single static instance and no public constructor Although not part of ArgoUML by default this stereotype is un derstood by the critics You may find it useful to create this stereotype for yourself see Section 16 5 Stereotype Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 18 4 Stereotype Namespace Drop down selector Records and allows setting of the namespace for the class This is the package hierarchy Button 1 click on the entry will move the class to the selected namespace Modifiers Check box with entries Abst ract Leaf Root and Active e Abstract is used to declare that this class cannot be instantiated but must always be sub classed The name of an abstract class is displayed in italics on the diagram d Caution If a class has any abstract operations then it should be declared abstract
100. lighted in the current version of ArgoUML Guard Text box Shows the name of a guard if any The expression of a guard must be true before this transition can be taken Button 1 double click navigates to the selected entry button 2 gives a pop up menu with one entry New Add a new guard Effect Text box Shows the action if any to be invoked as this transition is taken Button 1 double click navigates to the selected action button 2 gives a pop up menu with two entries New Add a new Effect action of a certain kind This menu has the following submenus to se lect the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action Delete From Model Delete the selected action from the model 20 9 Event An event is an observable occurrence In the UML metamodel it is a child of ModelElement There are a number of different types of events that are children of event within the UML metamodel CallEvent Associated with an operation of a class this event is caused by a call to the given op eration The expected effect is that the steps of the operation will be executed SignalEvent Associated with a signal this event is caused by the signal being raised e TimeEvent An event cause by expiration of a timing deadline ChangeEvent An event caused by a particular expression of attributes and associations becom in
101. module uses conventions in the use of the extension features of UML tagged values and stereotypes Since UML and C are object oriented there is an obvious correspondence between the UML model elements and C structural constructs e g the UML Class is related to the C class These obvi ous relations will not be described here since it is assumed that an ArgoUML user that wants to model for C has basic knowledge of both C and UML Tagged values are one of the main means by which we can define code generation behavior They have a name the tag and a value and are applied to model elements The tagged values in use for the C module have two categories e free format values any St ring is valid except the empty St ring formated values the value must obey some restrictions e g be one of true or false abbreviated to true false For Boolean tagged values only the values true or false are applicable If a Boolean tagged value does not exist or is invalid for one model element a default value is assumed by the code generator In the bellow documentation the default value is marked Free format tagged values are only significant if present and if the value isn t an empty String When the value must follow some sort of format that is explicitly stated In this case there is the chance that the value is invalid If the value is invalid no assumptions are made the generator will trace the problem and
102. mouse can simply be moved away to get a clearer view of the diagram 12 6 Clarifiers 142 The Editing Pane A key feature of ArgoUML are the critics which run in parallel with the main ArgoUML tool When they find a problem they typically raise a to do item and also highlight the problem on the editing pane The graphical techniques used for highlighting are called Clarifiers e Note icon Displayed at the top left of an artifact indicates a critic of that artifact Moving the mouse over the icon will pop up the critic headline e Colored wavy line Used for critics specific to sub components of graphical arti facts For example to underline attributes with a problem within a class e Solid colored line Not seen in ordinary editing but used when a to do item is highlighted from the to do pane see Chapter 14 The To Do Pane by button 1 double click The solid line is used to show all the artifacts affected by the critic for example all stimuli that are out of order 12 7 The Drawing Grid The editing pane is provided with a background grid which can be set in various styles or turned off al together through the menu see Section 10 5 4 Adjust Grid Whatever grid is actually displayed placement of items on the diagram is always controlled by the set ting for grid snap which ranges from 4 to 32 pixels see Section 10 5 5 Adjust Grid Snap 12 8 The Diagram Tab At the bottom of the ed
103. of the classifier the instance level In this latter form classifier roles are identical to the instances used in sequence diagrams see 301 Collaboration Diagram Artifact Reference Chapter 19 Sequence Diagram Artifact Reference and a collaboration diagram shows the same inform ation as the sequence diagram but in a different presentation d Caution A collaboration diagram should not mix classifier roles used as the specifier level and the instance level A classifier role is represented on a sequence diagram in ArgoUML as a plain box labeled with the clas sifier role name if any and classifier separated by a colon d Caution A classifier role should properly also show object name if any preceding the classifier role name and separated from it by a slash This allows classifier roles in a specifica tion level diagram to be distinguished from instances in an instance level diagram ArgoUML does show the slash but there is no way to define the instances 21 2 1 Classifier Role Details Tabs The details tabs that are active for classifier roles are as follows ToDoItem Standard tab Properties See Section 21 2 2 Classifier Role Property Toolbar and Section 21 2 3 Property Fields For Classifier Role below Documentation Standard tab Presentation Standard tab Source Standard tab but with no contents D Caution A classifier role should not generate any code so having this
104. of the root directory for the code gen eration email name domain country replaces the tag IEMAILI of the template file author name replaces the tag IAUTHORI of the template file Note Ce You may simply use the Author property in the documentation property panel D 1 2 Attribute tagged values UML Attributes are mapped to class member variables pointer true the type of the member variable will be a pointer to the attribute type For example if you have the UML Attribute name std string with the pointer tagged value set to true the generated member variable would be std string name false default no pointer modifier is applied reference true the type of the member variable will be a reference to the attribute type 353 The C Module false default no reference modifier is applied usage header will lead for class types to a pre declaration in the header and the include of the remote class header in the header of the generated class MultiplicityType list slist vector map stack stringmap will define a multi plicity as the corresponding STL container if the Multiplicity range of the attribute is variable for fixed size ranges this setting is ignored set private protected public creates a simple function to set the attribute by a function call by reference is used for class types else call by value place the function in the given visibility a
105. of these are then zipped to a file with extension zargo You can easily extract the xmi file from the zargo file using any old generic ZIP application Give it a try and look into the magic of Argo E Warning Be aware that double clicking will launch a ZIP utility if one is installed and NOT Argo 3 4 3 2 Graphics and Printing 3 4 3 2 1 The Graph Editing Framework GEF 26 UML Based OOA amp D GEF is the software package that is the foundation of the diagrams that appear in the Editing Pane GEF was an integral part of ArgoUML but has been separated Like ArgoUML it is an open source project available via Tigris http www tigris org 3 4 3 2 2 Precision Graphics Markup Language PGML PGML is the current storage format for diagram information used in ArgoUML In the future PGML will be replaced by the UML 2 0 Diagram Interchange format 3 4 3 2 3 Applications Which Open PGML PGML is a predecessor of SVG see Section 3 4 3 2 5 Scalable Vector Graphics SVG It was dropped by the W3C Consortium Currently there are no other tools that we know of working on PGML 3 4 3 2 4 Printing Diagrams Select a diagram then go to File Export Diagrams You can generate GIF PostScript Encapsu lated PostScript or SVG format 3 4 3 2 5 Scalable Vector Graphics SVG A World Wide Web Consortium W3C standard vector graphics format http www w3 org TR S VG http www w3 org TR SVG Support is b
106. on every property tab This is populated with the standard stereotypes to which you may add your own user defined ones The details of stereotyping are beyond the scope of this tutorial The reference manual see Section 16 5 Stereotype documents the support provided in ArgoUML e Warning ArgoUML is missing a few of the standard UML stereotypes In addition not all artifacts will actually display the stereotype on the diagram At present this includes use cases and actors Documentation ArgoUML has some simple documentation facilities associated with artifacts on a diagram In general these should be used only to record the location of material in documents that can be handled by a main stream editor or word processor not the actual documentation itself Documentation for a particular artifact is recorded through the documentation tab in the details pane the 48 4 4 7 Requirements Capture quadrant of the user screen at the bottom right In addition annotation may be added to diagrams using the text icon on the editing pane toolbar A d The recommendation is that a use case diagram should use the documentation tab of actors to record in formation about the actor or if the actor is complex to refer to a separate document that holds informa tion about the actor The documentation tab of use cases should record the location of the use case specification The inform ation in a use case specification for all
107. package the first created if there is more than one or will offer to create one for you if there is none See Figure 12 2 The dialog for adding a new class diagram Figure 12 2 The dialog for adding a new class diagram Add new class diagram 3 Add new class diagram ta abc Yes 12 2 3 Button 1 Motion Where the artifact being added is some form of connector its termination point is shown with button 1 up over the terminating artifact button 1 click may be used in the space between artifacts to create artic 129 The Editing Pane ulation points in the connector This is particularly useful where connectors must loopback on them selves Over graphical artifacts button 1 motion will move the artifact to a new position Graphical artifacts that are selected show handles at the corners or ends and these can be used for re sizing Some artifacts e g actor class show special handles called Selection Action Buttons see Sec tion 12 5 Selection Action Buttons at the sides top and bottom which can be dragged to form types of relationship with other artifacts Where the artifact is some form of connector between other items button 1 motion other than at a handle will cause a new handle to be created allowing the connector to be articulated at that point This only works when the connecting line is not straight angled Such new handles can be removed by mov ing them to the end of the connector
108. pliocena MphHaaqnexawhHe 3 nemeHrer EJ Huskwit Mma untitledM odel l ipocrpaucreo nen r Bugumocte Cneunannsaunin ny C np C pa C sa Monwepiikaroper Figure 3 5 Setting Language in the Appearance Pane yi YCTAHOBKH q x lesere BneyaTnEeHhe H OWYUYEHHE 1 IERE Windows Y lemssoBaTenb uywenne metana Horas Bueunocre CraaxWBarb KPOMKH AHHH aWarpa Abik es espa ol en GB English United Kingdom 3 4 2 The ArgoUML User Interface Before beginning the Case Study you need to become familiar with the user interface Start by reading the introduction to the User Interface Reference See Chapter 8 Introduction 18 UML Based OOA amp D As you go through this tutorial you will be told what to do and when to do it but how to do it will often be left to the User Interface Reference It is not necessary at this point to read all of the Reference but you should leaf through enough of it to become familiar with how to find things in it Every attempt will be made to direct you to the appropriate part of the Reference at those points in the tutorial where they apply Figure 3 6 Initial ArgoUML window shows the main ArgoUML window as it appears when ArgoUML is first entered Figure 3 6 Initial ArgoUML window W ArgoUML LE EE x File Edit View Create Diagram Arrange Generation Critique Tools Help Qana xaiw amp E mDnIBE
109. realizations Since ArgoUML only permits one model this is not a meaningful box to check Leaf indicates that this model can have no further subpackages while root indicates it is the top level model Within ArgoUML root only meaningfully applies to the Model since all packages sit within the model In the absence of the topLevel stereotype this could be used to emphasize that the Model is at the top level Generalizations Text area Lists any model that generalizes this model E Note Cer y E Since there is only one model in ArgoUML there is no sensible specialization or gen eralization that could be created Specializations 192 Top Level Artifact Reference Text box Lists any specialized model i e for which this model is a generalization Note Since there is only one model in ArgoUML there is no sensible specialization or gen eralization that could be created Owned Elements Text area A listing of the top level packages classes interfaces datatypes actors use cases asso ciations generalizations and stereotypes within the model Button 1 double click on any of the artifacts yields navigating to that artifact 16 3 Datatype Datatypes can be thought of as simple classes They have no attributes and any operations on them must have no side effects A useful analogy is primitive datatypes in a language like Java The integer 3 stands on its own it has no inner structure There
110. reason renaming a constraint afterwards is impossible i3 Delete Constraint The constraint currently selected in the Constraint Name box see below is deleted d Caution In V0 20 of ArgoUML this button is not downlighted when it is not functional i e when no constraint is selected wj Edit Constraint This launches the constraint editor in the Constraints tab see Sec tion 13 7 1 The Constraint Editor The editor is invoked on the constraint currently selected in the Constraint Name box D Caution In V0 18 of ArgoUML this button is not downlighted when it is not functional i e when no constraint is selected B Configure Constraint Editor This a dialog to configure options in the constraint editor see Figure 13 15 Dialog box for configuring constraints Figure 13 15 Dialog box for configuring constraints 163 The Details Pane OCL Editor Preferences Options The dialog box has a check box for the following option Check type conformance of OCL constraints OCL is strictly typed At the early stages of design it may be helpful to disable type checking rather than follow through all the de tailed specification needed to get type consistency At the bottom are two buttons labeled OK to accept the option changes and Cancel to discard the changes The main body of the constraints tab comprises two boxes a smaller to the left and a larger one to the right The
111. release of ArgoUML does not fully implement actions there is no en forcement of the relationship to a send action 19 8 Stimulus Return This tool creates a stimulus associated with a return action on the diagram creating at the same time the associated link between sender and receiving instances All details tabs and properties are identical to to that of stimulus in general see Section 19 3 Stimulus Its graphical representation on the diagram is that of a stimulus associated with a return ac tion i e a dotted line with an open arrow head f m Note Because the current release of ArgoUML does not fully implement actions there is no en forcement of the relationship to a return action 19 9 Link A link is an instance of an association In the UML metamodel Link is a sub class of Instance Within a sequence diagram links are created indirectly when an associated stimulus is created An link is represented on a sequence diagram in ArgoUML as a line connecting the instances concerned However on a sequence diagram the representation is modified to reflect the type of action associated with the stimulus carried on the link see Section 19 3 Stimulus 19 9 1 Link Details Tabs The details tabs that are active for links are as follows 275 Sequence Diagram Artifact Reference ToDoItem Standard tab Properties See Section 19 9 2 Link Property Toolbar and Section 19 9 3 Property Fields For Link below
112. specialized interface i e for which this interface is a generalization Button 1 double click navigates to the generalization and opens its property tab AssociationEnds Text box Lists any AssociationEnds see Section 18 12 Association End connected to this inter face GP Note a Associations between classes and interfaces must be navigable only from the class to the interface ArgoUML will create associations between classes and interfaces with the correct navigability but does not prevent the user from altering this Button 1 double click navigates to the selected entry Operations Text area Lists all the operations see Section 18 7 Operation defined on this interface Button 1 double click navigates to the selected operation Button 2 click will show a popup menu with two items Move Up and Move Down which allow reordering the operations Caution All operations on an interface must be public The ArgoUML critics will complain if this is not the case 18 16 Abstraction 263 Class Diagram Artifact Reference An abstraction is a dependency relationship joining two artifacts within the model at different levels of abstraction Within ArgoUML it is principally used through its specific stereotype realize to define realization dependencies which link artifacts that specify behavior to the corresponding artifacts that im plement the behavior In the UML metamodel Abstraction is a sub class of Depe
113. started to develop as a credible alternative to a functional approach in analysis and design We can identify a number of drivers 1 The emergence of mainstream OO programming languages like SmallTalk and particularly C C was a pragmatic OO language derived from C widely used because of its association with Unix 2 The development of powerful workstations and with them the emergence into the mainstream of windowing operating user environments Graphical User Interfaces GUI have an inherent object structure 3 A number of very public major project failures suggesting that current approaches were not satis factory A number of researchers proposed OOA amp D processes and with them notations Those that achieved some success include Coad Yourdon Booch Rumbaugh OMT OOSE Jacobson Shlaer Mellor ROOM for real time design and the hybrid Jackson Structured Development During the early 1990 s it became clear that these approaches had many good ideas often very similar A major stumbling block was the diversity of notation meaning engineers tended to be familiar with one OOA amp D methodology rather than the approach in general UML was conceived as a common notation that would be in the interests of all involved The original standard was driven by Rational Software www rational com http www rational com in which three of the key researchers in the field Booch Jacobson and Rumbaugh were involved They produced doc um
114. status bar of ArgoUML i e the small area at the bottom of the ArgoUML window shows an help text that indicates the syntax of the text to be entered Text entry can be concluded by pressing F2 or for single line fields by pressing the enter key Additionally editing can be concluded by clicking somewhere in the diagram outside the edit area Editing notation on the diagram is a very powerful way to enter a lot of model information in a very compact way It is e g possible to create an operation its stereotype all parameters and their types and 147 The Editing Pane operation properties visibility concurrency all at once by typing Order customerID int items List void sequential An association e g between two classes is showing many texts close to its middle and ends so its de serves some extra explanation Figure 12 9 A couple of associations with adornments shows two as sociations to clarify the following Figure 12 9 A couple of associations with adornments The association on the right shows that invisible fields where text can be entered become visible once the modelelement is selected The fields are indicated by blue rectangles double click on them with mouse button to start editing The visibility the or is shown together with the association end name but it is not shown for an unnamed association end Likewise the multiplicity is not shown
115. tab active is probably a mistake Tagged Values Standard tab In the UML metamodel CLassifier Role has the following standard tagged val ues defined e persistence from the superclass CLassifier Showing the permanence of the state in formation associated with the classifier role Values transitory state is destroyed when the classifier role is destroyed and persistent state is preserved when the classifier role is des troyed e semantics from the superclass Classifier The value is a specification of the se 302 Collaboration Diagram Artifact Reference mantics of the classifier role derived from the superclass ModelElement Values t rue meaning the classifier role is redundant it can be formally derived from other elements or false meaning it cannot m Note Eg Derived classifier roles still have their value in analysis and design to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 21 2 2 Classifier Role Property Toolbar d GO up Navigate up through the package structure New reception e p This creates a new reception navigating immediately to the properties tab for that reception gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the s
116. the LAF Look And Feel and theme i e what the complete ArgoUML UI looks like It comprises the following settings Figure 10 16 The dialog for Settings Appearance wi Settings Pref ae Look and Feel windows Environment User Motations 7 i C Smooth edges of diagram lines and text Modules Language en English Restart the application to see these changes Look and Feel The choice made here influences the complete User Interface It only becomes effective when ArgoUML is exited and restarted Metal Theme This item is downlighted if the Metal LAF is not chosen The choice made here in fluences the complete User Interface It only becomes effective when ArgoUML is exited and restar ted Smooth edges of diagram lines and text This feature is known as anti aliasing on certain platforms It causes diagonal lines to look much less jagged by making use of several shades of gray This feature only works if the operating system supports it 10 4 5 5 Notation Tab This tab allows the user to specify certain notation settings i e how things are shown on diagrams It comprises the following check boxes All settings here only define the defaults used for new projects If you want to change the way the dia grams in your current project look then see the File Properties menu Figure 10 17 The dialog for Settings Notations 99 The Menu bar i Settings Preferences Notation La
117. the details pane it is located under the properties tab An overview of the panes is given in Section 8 3 General Information About Panes Finally at the bottom of the window is a status bar described in Section 8 4 The status bar 8 2 General Mouse Behavior in ArgoUML Mouse behavior that is specific to the various panes of ArgoUML see Section 8 3 General Informa tion About Panes or the menu bar is discussed in the chapters covering those panes and the menu bar In this section we cover behavior that is general across all of ArgoUML In a number of places in ArgoUML text may be directly edited for example the constraint editor see Section 13 7 1 The Constraint Editor The behavior of the mouse when handling text is discussed in the sections that follow 8 2 1 Mouse Button Terminology ArgoUML assumes a two button mouse We will refer to the buttons as button 1 and button 2 But ton is the leftmost button on a right handed mouse and sometimes referred to as the select button But ton 2 is the rightmost button on a right handed mouse and is sometimes referred to as the adjust button A single depress and release of a mouse button with the mouse is referred to as a click Two clicks in quick succession is referred to as a double click Moving the mouse while holding a button down is re ferred to as button motion with the starting point being at button down and the end point at button up Button 1 Cl
118. the diagram 327 Deployment Diagram Artifact Reference Source Standard tab but with no contents d Caution A component should not generate any code so having this tab active is probably a mistake Tagged Values Standard tab Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML c 23 4 2 Component Property Toolbar By GO up Navigate up through the package structure New reception oo This creates a new reception navigating immediately to the properties tab for that reception gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected component navigat ing immediately to the properties tab for that stereotype Tif Delete This deletes the component from the model amp Warning This is a deletion from the model not just the diagram To delete a component from the diagram but keep it within the model use the main menu Remove From Dia gram or press the Delete key 23 4 3 Property Fields For Component Name Text box The name of the component The name of a component has a leading capital letter with words separated by bumpy caps p Note 328 23 5 Deployment Diagram Artifact Reference ArgoUML does not enforce this naming convention Stereotype Drop down selector Component is provided by default wit
119. the ego Open Source doesn t preclude making money Gentleware www gentleware com http www gentleware com sell a commercial version of ArgoUML Poseidon Their value proposition is not a piece of private code Its the commercial polish and support that take risk out of using ArgoUML in a commercial development allowing customers to take advantage of ArgoUML s leading edge technology 3 4 ArgoUML Basics 3 4 1 3 4 1 1 The aim of this section is to get you started with ArgoUML It takes you through obtaining the code and getting it running Getting Started System Requirements Since ArgoUML is written in 100 pure Java it should run on any machine with Java installed Java version 1 4 or later is needed You may have this in place but if not it can be downloaded free from www java com http www java com Note that you only need the Java Runtime Environment JRE 15 UML Based OOA amp D there is no need to download the whole Java Development Kit JDK ArgoUML needs a reasonable amount of computing resource A PC with 200MHz processor 64Mb RAM and 10Mb of space available on a harddisk should be adequate Download the code from Down load section of the project website argouml tigris org http argouml tigris org Choose the version that suits your needs as described in the section below 3 4 1 2 Downloading Options You have three options for obtaining ArgoUML 1 Run ArgoUML directly from the Web Site
120. the latest version is presently available at ht tp www opencontent org openpub http www opencontent org openpub The reference must be immediately followed with any options elected by the author s and or publisher of the document see section VI Commercial redistribution of Open Publication licensed material is permitted Any publication in standard paper book form shall require the citation of the original publisher and au thor The publisher and author s names shall appear on all outer surfaces of the book On all outer sur faces of the book the original publisher s name shall be as large as the title of the work and cited as pos sessive with respect to the title F 2 Copyright The copyright to each Open Publication is owned by its author s or designee F 3 Scope Of License The following license terms apply to all Open Publication works unless otherwise explicitly stated in the document Mere aggregation of Open Publication works or a portion of an Open Publication work with other works or programs on the same media shall not cause this license to apply to those other works The aggregate work shall contain a notice specifying the inclusion of the Open Publication material and appropriate copyright notice SEVERABILITY If any part of this license is found to be unenforceable in any jurisdiction the remain ing portions of the license remain in force NO WARRANTY Open Publication works are licensed and provide
121. the problem to its realization in concrete terms 4 Build Phase We take the actual design and write it in a real programming language This includes not just the programming but the testing that the program meets the requirements verification testing that the program actually solves the customer s problem validation and writing all user documentation 3 2 1 Types of Process In this section we look at the two main types of process in use for software engineering There are oth ers but they are less widely used In recent years there has also been a move to reduce the effort required in developing software This has led to the development of a number of lightweight variants of processes often known as agile comput ing or extreme programming that are suited to very small teams of engineers 3 2 1 1 The Waterfall Process In this process each stage of the process requirements analysis design and build code and test is completed before the next one starts This is illustrated in Figure 3 1 The Waterfall Process Figure 3 1 The Waterfall Process This is a very satisfactory process where requirements are well designed and not expected to change for example automating a well proven manual system The weaknesses of this approach show with less well defined problems Invariably some of the uncer tainties in the requirements will not be clarified until well into the analysis and design or even code UML Based O
122. the properties tab for that operation gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype within the same package as the enu meration navigating immediately to the properties tab for that stereotype Tif Delete from Model This deletes the datatype from the model 16 4 3 Property Fields For Enumeration Name Text box The name of the enumeration The primitive enumerations all have lower case names but there is no formal convention aii Note Ce l The default name supplied for a newly created datatype is the empty string Enu merations with empty string names will appear with the name anon Enumera tion in the explorer Namespace Drop down selector Allows changeing the namespace for the enumeration This is the composition hierarchy Modifiers Check box with entries Abstract Leaf and Root Abstract is used to declare that this enumeration cannot be instantiated but must always be specialized Note Eg EE ArgoUML provides no mechanism for specializing enumerations so this check box is of little use Leaf indicates that this enumeration can have no further sub types while Root indicates it is a 199 Top Level Artifact Reference top level enumeration Tip In the absence of specialization of enumerations within ArgoUML these have little value In effect all enumerations are both Root and Final Visibility Radio box with entries public private
123. them in the language of and from the perspective of a putative solution A class that characterizes the association between two other classes A relationship between two classes in a Class Diagram or between Use Cases or Use Cases and Actors in a Use Case Diagram An attribute of a class or object is a specification of a data element encapsulated by that object Computer Aided Software Engineering The encapsulation of the data associated with an artifact its attrib utes and the actions associated with the artifact its methods A class specifies the characteristics of an artifact An object repres ents an instance of the artifact Classes and objects in UML are represented on Activity Diagrams Class Diagrams Collaboration Diagrams and Sequence Diagrams A UML Diagram showing the structural relationship between classes See Section 5 2 Class Diagrams To be written for more information 342 Glossary Collaboration Collaboration Diagram Collaborator Comprehension and Problem Solving Concept Class Diagram Critic Extend Relationship Generalization Relationship The process whereby several objects cooperate to provide some higher level behavior that is greater than the sum of the behaviors of the objects A UML Diagram showing the dynamic behavior as messages are passed between objects Equivalent to a Sequence Diagram Which representation is appropriate depends on the problem under co
124. transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed Tip Since user defined datatypes are enumerations they have no state to preserve and the value of this tagged value is irrelevant semantics from the superclass Classifier The value is a specification of the se mantics of the datatype derived from the superclass ModelElement Values t rue meaning the class is redund ant it can be formally derived from other elements or false meaning it cannot Tip While formally available a derived datatype does not have an obvious value and so datatypes should always be marked with derived false 16 3 2 Datatype Property Toolbar By GO up Navigate up through the package structure pg New datatype This creates a new datatype see Section 18 5 Class within the same package as the current data type Tip While it can make sense to create datatypes this way it can be clearer to create them within the package or model where you want them New enumeration literal This creates a new enumeration literal within the datatype navigating immediately to the properties tab for that literal d Caution ArgoUML does not actually have a separate concept of a literal The navigation will 194 Top Level Artifact Reference navigate to the property sheet for an attribute of a class see Section 18 6 Attribute
125. version of the current project It works a bit like an Undo feature but only restores changes done since the last time the file was saved This menu item is downlighted unless the currentproject has been saved or loaded before i e it has a name and it has been altered When this menu item is activated a small confirmation dialog box opens as shown in the figure below This warning that all recent changes will be discarded is needed because the action can not be undone Selecting No cancels the whole action as if you did not select the menu item in the first place Selecting Yes reloads the last saved file Figure 10 3 The warning dialog for Revert to Saved Revert to Saved Q All unsaved changes will be lost Revert to last saved version of Untitled Yes No 10 3 6 Import XMI This menu item allows to load an UML 1 3 or 1 4 model which was exported by e g another tool as a XMI file according the XMI V1 0 V1 1 or V1 2 standard The extension of such file should be xmi If the model has been altered as indicated by the in the titlebar of ArgoUML s window then activ ating the Import XMI function is potentionally not the user s intention since it will erase the changes Hence a confirmation dialog appears to allow the user to save his work first or cancel the oper ation completely 85 The Menu bar Figure 10 4 The confirmation dialog for Import XMI Save changes to Untitled
126. written 6 5 More on Class Diagrams in ArgoUML To be written 6 5 1 Classes To be written More on identifying classes from existing materials and use of stereotypes To be written 61 Design 6 5 2 Class Attributes and Operations To be written To be written 6 5 2 1 Class Attributes To be written To be written 6 5 2 2 Class Operations To be written To be written 6 5 3 Advanced Class Features 6 5 3 1 Operations on Interfaces 6 5 3 1 1 Interfaces that extend interfaces Add a unnamed interface to the current classdiagram by single clicking on the interface icon in the tool bar and then clicking at the diagram pane see Figure 6 1 Selecting the Interface tool Figure 6 1 Selecting the Interface tool ea Then double click on the interfaces name field to change it s name as shown in Figure 6 2 Interface ar tifact on the Class Diagram Figure 6 2 Interface artifact on the Class Diagram q lt A DEL eh Sr 5 Dy Class Di lt lt Interface gt gt 62 Design and type a name for it like Test Interface in this case Press Enter when the name is complete You could also enter the name by going to the Properties Tab in the Details Pane after adding the inter face Add another interface with a different by repeating the last 2 steps Then single click on the Generaliza tion icon in the tool bar as shown in Figure 6 3 Generalizatio
127. 0 3 12 Export All Graphics This menu entry brings up a dialog box to select a directory In this directory for all diagrams in the cur rent project a graphics file is generated The names of the files are deducted from the diagram names The graphics format that is produced is set in the dialog under the Edit menu see Section 10 4 5 e Settings 10 3 13 Notation This sub menu presents a radio button selection for notation i e the language in which all textual adorn ments are shown on the diagrams This feature defines the project s notation language There are 2 ways to set the notation language n the Edit menu see Section 10 4 5 5 Notation Tab in the notation tab of the settings dialog which defines the default notation language for new projects This choice is stored in the argouml properties file In the File menu item Notation This determines how all textual adornments of figures on all dia grams of the current project are shown This choice is stored in the project file The following 2 notations are build in ArgoUML g UML 1 4 Uses UML notation as the default notation for every modelelement on any diagram ee Java Uses Java notation as the default notation for every modelelement on any diagram The following choices are only available if the corresponding plugin languages are installed 90 The Menu bar CPP e CSharp PHP Besides UML only Java is partly imple
128. 145 The Editing Pane sociation end see Section 17 6 Association End 1 e Dui e 01 e 0 12 9 7 Aggregation This sub menu only appears with association artifacts when clicking at one end of the association It is used to control the aggregation at the end of the association nearest the mouse click point There are three entries none Remove any aggregation e aggregate Make this end a shared aggregation loosely known as an aggregation e composite Make this end a composite aggregation loosely known as a composition d Caution UML requires that an end with a composition relationship must have a multiplicity of 1 the default 12 9 8 Navigability This sub menu only appears with association artifacts when clicking at one end of the association It is used to control the navigability of the association There are three entries bidirectional Make the association navigable in both directions e lt classl gt to lt class2 gt Make the association navigable only from class1 to lt class2 gt In other words lt class1 gt can reference lt class2 gt but not the other way round e lt class2 gt to lt class1 gt Make the association navigable only from lt class2 gt to lt class1 gt In other words class2 can reference class1 but not the other way round Note cg 2 UML does permit an association to be non navigable in both directions ArgoUML will al low this
129. 178 15 7 4 Add Incoming Transitions to artifact eese 178 15 7 5 Add Outgoing Transitions from artifact 179 15 7 6 Remove Extra Initial States sees 179 15 77 Place an Initial State kes ie eerte teen Soh dee 179 15 7 8 Add Trigger or Guard to Transition esee 179 15 7 9 Change Join Transitions see 179 15 7 10 Change Fork Transitions eee 179 15 7 11 Add Choice Junction Transitions ssseeesesee 179 15 7 12 Add Guard to Transition 2 0 0 0 ccccccccececeeeeeeeceeeeeeeeeeeeneneeeens 179 15 713 Clean Up Diagram ri int etm trt re ie Tana 179 15 7 14 Make Edge More Visible s 179 15 7 15 Composite Association End with Multiplicity gt 1 180 ArgoUML User Manual 15 8 Design Patterns e pet p te eir re Nie peed es DH OUI 180 15 8 1 Consider using Singleton Pattern for class sss 180 15 8 2 Singleton Stereotype Violated in class 0 0 0 0 cee ceee eee eee 180 15 8 3 Nodes normally have no enclosers ceceeceeeceeeeeeeeeeeen seen es 181 15 8 4 NodeInstances normally have no enclosers esssssse 181 15 8 5 Components normally are inside nodes ssseusssss 181 15 8 6 ComponentInstances normally are inside nodes 181 15 8 7 Classes normally are inside
130. 196 Top Level Artifact Reference Specializations Text box Lists any specialized datatype i e for which this datatype is a generalization d Caution It is not clear that specializing datatypes makes much sense Operations Text area Lists all the operations defined on this datatype Button 1 double click navigates to the selected operation button 2 click brings up a pop up menu with two entries Move Up Only available where there are two or more operations and the operation selected is not at the top It is moved up one Move Down Only available where there are two or more operations listed and the operation selected is not at the bottom It is moved down one See Section 18 7 Operation for details of operations d Caution ArgoUML treats all operations as equivalent Any operations created here will use the same mechanism as operations for classes Remember that operations on datatypes must have no side effects they are read only This means the query modifier must be checked for all operations Literals Text area Lists all the enumeration literals defined for this datatype Button 1 double click navig ates to the selected literal button 2 click brings up a pop up menu with two entries Move Up Only available where there are two or more literals and the literal selected is not at the top It is moved up one Move Down Only available where there are two or more literals listed and the literal sel
131. 75 15 4 10 Choose a Name States esssssessee m 175 15 4 11 Choose a Unique Name for a State related Artifact 175 15 4 12 Revise Name to Avoid Confusion sss 175 15 4 13 C hoose a Legal Name sce rte treten trt eere cet eee 175 15 4 14 Change an Artifact to a Non Reserved Word 175 15 4 15 Choose a Better Operation Name eee 175 15 4 16 Choose a Better Attribute Name ssssee 176 15 4 17 Capitalize Class Name tte teet ER rete 176 15 4 18 Revise Package Name esse 176 15 5 Storage eer EET 176 15 5 1 Revise Attribute Names to Avoid Conflict sess 176 15 5 2 Add Instance Variables to a Class seen 176 15 5 3 Add a Constructor to a Class sese 176 15 5 4 Reduce Attributes on a Class sse 177 15 6 Planned Extensions 1 e cete ews UE Dern eee 177 15 6 1 Operations in Interfaces must be public eeesesssess 177 15 6 2 Interfaces may only have operations eene 177 15 6 3 Remove Reference to Specific Subclass eeeeessssse 178 15 7 State Machines iet etim eee te e EET IRI REIS REB TERT 178 15 7 1 Reduce Transitions on state sss 178 15 7 2 Reduce States in machine machine ssssssesssss 178 15 7 3 Add Transitions to state sss
132. 75 8 2 1 Mouse Button Terminology sesse HMM 75 EARLIER GL dE 75 8 2 3 Button 1 Double CCK i1 leeren teret erepto ener neo Rae eren Pans 76 8 24 Button MOUOR Seiser neers e Lave eene p eye eE ER OU E RENE cree Ue Ep EE Y 76 8 2 5 Shift and Ctrl modifiers with Button 1 sss 76 8 2 6 Alt with Button 1 Panning 20 0 0 esee TI 8 2 7 Ctrl with Button 1 Constrained Drag see TI 8 2 Button 2 AGUODS eee ertet tere reve Rer xe Yes Erde Re e ERES TI 8 2 9 Button 2 Double Click esee e TI 8 2 10 Button 2 Motion erento eene nere e un oo E dec eb eR eere ES TI 8 3 General Information About Panes ssssssssseeseee eee TI 8 3 1 Re sizing Panes oett tee tro eset ue ee na puer per eed TI 8 4 Te Stats Dal PEE 78 9 The POG D am s iciyiacodesvansieete se rncansnnbennde E a EAE A EEEE EE E EE E 79 9 T File Operations sass 1sscescnserigexsennsedesohoshennos EEEE TENO TERETE U ORE EEEE 79 9 2 michi m 79 9 3 VIEW Operations 2 eee sain EORR rrr ERE Me ERREUR RAE arte EEE e ER Race bubus 79 pM Xu ach d 80 TO The Menu bar eT 82 LOS Ms Introductio ennienni dha ssh acres ganrndeessSedteusterdiesecetecabeneens 82 10 2 Mouse Behavior in the Menu Bar see 82 10 3 Th File Menu sserrep e nue gebs pers 83 10 3 1 ha een E e E E ETA 83 LAM 10 3 2 iS zia ee 83 10 3 3 SAVE Projeti ise caesvivevouseneeenuesvveonedy
133. Actor 33 44 207 342 Actor Association Ends 209 Actor Details Tabs 207 Actor Generalizations 209 Actor Modifiers 209 Actor Name 208 Actor Namespace 209 Actor Specializations 209 Actor Stereotype 208 Add Action 312 Add Actor 208 Add DataType 191 Add Datatype 228 236 240 244 Add Enumeration 191 Add Extend Relationship 221 Add Extension Point 211 214 Add Package 191 Add Qualifier 254 310 Add Stereotype 191 195 199 214 217 221 224 228 232 236 240 244 247 251 254 259 262 269 276 280 283 287 289 291 293 295 298 303 310 312 318 324 326 328 330 Add Use Case 211 Aggregation of Association End 257 Alternate Flows of Use Case 41 42 Alternative scenarios 42 Analysis 1 7 12 342 Object Oriented 345 Arrange Menu 21 Association 249 342 in a Use Case Diagram 46 Association Class 342 Association Details Tabs 250 Association End 253 Association End Aggregation 257 Association End Changeability 258 Association End Details Tabs 253 Association End Modifiers 255 Association End Multiplicity 255 Association End Name 255 Association End Property Fields 255 Association End Property Toolbar 254 Association End Stereotype 255 Association End Tagged Values 253 Association End Type 255 Association End Visibility 258 Association Ends of Actor 209 of Association 252 Association Name 252 Association Property Fields 251 Association Property Toolbar 251 As
134. ArgoUML User Manual A tutorial and reference description Alejandro Ramirez Philippe Vanpeperstraete Andreas Rueckert Kunle Odutola Jeremy Bennett Linus Tolke Michiel van der Wulp ArgoUML User Manual A tutorial and reference description by Alejandro Ramirez Philippe Vanpeperstraete Andreas Rueckert Kunle Odutola Jeremy Bennett Linus Tolke and Michiel van der Wulp Copyright 2004 2005 2006 Michiel van der Wulp Copyright 2003 Linus Tolke Copyright 2001 2002 Jeremy Bennett Copyright 2001 Kunle Odutola Copyright 2000 Philippe Vanpeperstraete Copyright 2000 Alejandro Ramirez Copyright 2000 Andreas Rueckert Abstract This version of the manual is intended to describe the version 0 22 of ArgoUML This material may be distributed only subject to the terms and conditions set forth in the Open Publication License v1 0 or later A copy of this license is included in the section Open Publication License The latest version is presently available at ht tp www opencontent org openpub http www opencontent org openpub Table of Contents ING M xvii 1 Introduction uen eere pee terere Er mer S PREES nPE EES pastas rper E Rep aee Eurer reis 1 1 1 Origins and Overview of ArgoUML occ cee e cece nec eee 1 1 1 1 Object Oriented Analysis and Design s 1 1 1 2 The Development of ArgoUML seen 1 1 1 3 Finding Out
135. ArgoUML has the concept that a critic reflects a deficiency in a category of knowledge This presentation option groups the critics according to their knowledge category Designer s Correctness Completeness Consistency Syntax Semantics Op timization Presentational Organizational Experiencial and Tool The former category Designer s contains the manually entered todo items 14 4 Item Count To the right of the flat hierarchical button is a count of the number of to do items currently found It will be highlighted in yellow when the number of to do items grows above 50 todo items and red when above 100 171 Chapter 15 The Critics 15 1 Introduction The key feature that distinguishes ArgoUML from other UML CASE tools is its use of concepts from cognitive psychology The theory behind this is well described in Jason Robbins PhD dissertation ht tp argouml tigris org docs robbins dissertation http argouml tigris org docs robbins dissertation Critics are one of the main ways in which these ideas are implemented Running in the background they offer advice to the designer which may be accepted or ignored A key point is that they do not impose a decision on the designer Note LER The critics are asynchronous processes that run in parallel with the main ArgoUML tool Changes typically take a second or two to propagate as the critics wake up 15 1 1 Terminology The critics are background processes which
136. As Import sources B Print Ctri P Page Setup Save Graphics Save Configuration VERE HIE LEI LE LLANE ER ECL IUUD CLEC CEE TEE TUA II I EEE Exit At F4 LO High E Medium ssl Low Class Diagram a Name class Diagram 1 Please notice that the File menu contains the usual options for creating a new project for opening an ex isting project for saving a project under a new name for printing the currently displayed diagram for saving the currently displayed diagram as a file and for program Exit Some of these menu commands can be invoked by pressing key combinations as indicated on the drop down menu For instance holding down the Ctrl key and pressing N will create a new project In the current version ArgoUML can only contain one active project at a time In addition a project can only contain one UML model Since an UML model can contain an unlimited number of elements and diagrams this should not present any serious limitations even for modeling quite large and complex systems 3 4 2 8 3 The File Chooser Dialog 24 UML Based OOA amp D But let s go back to saving our project After clicking on the Save Project As menu command we get the file chooser dialog to enter the file name we wish to use as shown in Figure 3 8 File Chooser Dialog Figure 3 8 File Chooser Dialog J Documentation E Manufacturin
137. Attribute BigDecimal Singleton lass P 3 operation classArg De pe ndedOnC lass void inte rfaceOp0 BigDecimal static instance Variable SingletonC lass SingletonC lass ee aggregate Association De pe ndedOnC lass instance Variable int De pe nde ndOnC lasstid Integer de pe ndedRole fourthRole composite Association association FourthC lass SecondClass Figure 18 2 Possible artifacts on a package diagram shows a package diagram with all possible arti facts displayed 226 Class Diagram Artifact Reference Figure 18 2 Possible artifacts on a package diagram sub package 1 library package sub package 2 18 1 1 Limitations Concerning Class Diagrams in ArgoUML The current implementation does not allow datatypes to be shown on class diagrams A variant of the class diagram within the UML standard is the object diagram There is currently no sup port for objects or links within ArgoUML Class diagrams Instead the ArgoUML deployment diagram does have both objects and links and can be used to draw object diagrams 18 2 Package The package is the main organizational artifact within ArgoUML In the UML metamodel it is a sub class of both Namespace and GeneralizableElement Note Lg ArgoUML also implements the UML Model artifact as a sub class of package but not the Subsystem artifact ArgoUML al
138. Author Version Since Deprecated Oo See As you can see many more fields have been added to the Documentation field alone The other fields similarly store their information under tagged values author version since deprecated see The fields on this tab are the same for all artifacts Since UML comments are a kind of documentation they are also shown on this tab with name and body e Author A text box for the author of the documentation Version A text box for the version of the documentation 155 13 5 The Details Pane e Since A text box to show how long the documentation has been valid Deprecated A check box to indicate whether this artifact is deprecated i e planned for removal in future versions of the design model See Pointers to documentation outside the system Documentation Literal text of any documentation Comment Name The names of all comments attached to the modelelement Body The bodies of all comments attached to this modelelement Tip m n Fi ArgoUML is not primarily a documentation system For artifacts that require heavy docu mentation notably use cases the use of the See field to point to external documents is more practical Presentation Tab This tab provides some limited control over the graphical representation of artifacts in the diagram in the editing pane Artifacts that do not have any specific direct graph
139. Concrete NM C Add Instance Variables t 71 Add Associations to void fh 4 amp B E T EE gm o For critics built from other critics No known children atpresent Examples which come from several other packages CT Taw newOperation void z unmuren at B8 d a CrConstructorNeede CrSingletonViolate d lt lt create gt gt CrSingletonViolate dj CrConsider Singleton lt screate gt gt CIC onsider Singleton s lt create gt gt CrC onstructorl predicate2 boolean X boolean predicate2 boolean As Diagram Discriminator 4 ToDo Item Properties 4 Documentation Presentation A Source Constraints A Tagged Values Checks dr Generalization a Iu Name Stereotype The explorer allows the user to view the structure of the model from a number of predefined perspect ives It also allows the user to define their own perspetives for custom exploring of the model An important feature related to the cognitive psychology ideas behind ArgoUML is that not all artifacts are necessarily shown in all perspectives Rather the perspectives are used to implement hiding of unin teresting parts of the model 11 2 Mouse Behavior in the Explorer Behavior of the mouse in general and the naming of the buttons is covered in the chapter on the overall user interface see Chapter 8 Introduction 121 The Explorer 11 2 1 Button 1 C
140. E ELE e eso tton 292 20 11 1 Pseudostate Details Tabs s HI 292 20 11 2 Pseudostate Property Toolbar ee 293 20 11 3 Property Fields For Pseudostate eeeesseee 293 20 12 Initial State i cnc tee ee ettet sexti ie deb Ie dese ee eastern 294 20 13 Emal States 0 eR EN reed UC 294 20 13 1 Final State Details Tabs 1 eese rer Ihi 294 20 13 2 Final State Property Toolbar e 295 20 13 3 Property Fields For Final State eeeeese 295 20 14 J nction i iiber ipDin eei pee ED teen eed 296 20 15 CHOICE rr steed nts tests ree o merito Rd e REEF IR EPOR 296 20 AO POLK DE 296 20 17 DOU s CERRAR ERAN RU 297 20 18 Shallow HIStory eee eoe oret sy E opt eer rero Ue e ren Se oS 297 20 19 Deep History i5 edes Ue ee mee dotes rte e eI E PERI eC RECHT 297 20 20 SYNCH State 2s cies see tt ese eto eei merae der gue wanes eine Ere o ieu 208 20 20 1 Synch State Details Tabs 0 0 0 0 eee cece eee ce ence eeeeeeeneeenes 298 20 20 2 Synch State Property Toolbar eee 208 20 20 3 Property Fields For Synch State esses 299 21 Collaboration Diagram Artifact Reference sese 300 2 TL Introduction ue eh ree er emer EE EEE Im EEE 300 21 1 1 Limitations Concerning Collaboration Diagrams in ArgoUML 301 21 2 Classifier Role eee ree ebd a teet ms 301 21 2 1 Classifier Role Details Tabs
141. Element ArgoUML support local AssociationEnd yes metaclass Class no metamodel Package yes modelLibrary Package no parameter AssociationEnd yes postcondition Constraint no powertype Class no precondition Constraint no process Classifier yes profile Package no realize Abstraction yes refine Abstraction yes requirement Comment yes responsibility Comment yes self AssociationEnd yes send Usage yes signalflow ObjectFlowState yes source Abstraction no stateInvariant Constraint no stub Package yes systemModel Package yes table Abstraction no thread Classifier yes topLevel Package yes 340 Built In DataTypes Classes Interfaces and Stereotypes StereoType Base Element ArgoUML support trace Abstraction yes type Class yes 341 Glossary A Activity Diagram Action Actor Analysis Association Class Association Attribute of a Class or Object CASE Class Class Diagram A UML diagram capturing the dynamic behavior of a system or sub system See Section 6 10 Activity Diagrams To be written for more information Behavior associated with States or Transitions in State Diagram These actions are invocations of Methods and appear on Sequence and Collaboration Diagrams A representation of an agent animate or inanimate on a Use Case Diagram external to the system being designed Analysis is the process of taking the customer requirements and re casting
142. Final State has the no standard tagged values defined Tagged Values Standard tab In the UML metamodel Final State has no standard tagged values defined 294 Statechart Diagram Artifact Reference 20 13 2 Final State Property Toolbar Go up Navigate up through the package structure FM New Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected state navigating im mediately to the properties tab for that stereotype Tif Delete from Model This deletes the final state from the model e Warning This is a deletion from the model not just the diagram 20 13 3 Property Fields For Final State Name Text box The name of the final state By convention final state names start with a lower case letter and use bumpy caps to divide words within the name Note 7 ArgoUML does not enforce this naming convention Tip Final state names are shown on the diagram but it is not usually necessary to give them a name Container Text box Shows the container of the final state This is the state hierarchy Button 1 double click on the entry will navigate to the composite state that contains this state or the top level state that is the root of the state containment hierarchy Entry Action Text box Shows the name of the action if any to be executed on entry to this final state Button 1 double click navigates to the selected entry button 2 gives a pop up menu with two entri
143. I E Package centric ANS J k 4 E BH 4 4 T m E FA untitledModel Class Diagram 1 Usecase Diagram 1 2L 2 i las Diagram EN ELEN AEP EPI EPPS ERE EET EET By Priority v 2 Items j sls sears A Constraints amp Tagged values d High ToDo tem Properties 4 Documentation 7 Medium B Class Diagram Ef Low Name Class Diagram 1 Grab the vertical divider bars and move them back and forth Grab the horizontal divider bar and move it up and down Play around a little with the little arrows at the left or top of the divider bars See Sec tion 8 3 General Information About Panes 3 4 2 1 The Explorer Pane At this time you should take the time to read Chapter 11 The Explorer There is not a lot that you can do at this point with the Explorer Pane as there is nothing in it but the root of the tree currently untitled Model and two empty diagrams However the Explorer Pane is fundamental to almost everything that you do and we will be coming back to it again and again in what follows There is an expand or contract control in front of the package symbol for untitledModel in the Ex plorer Pand and the package symbol for Medium in the To Do Pane Click on these controls and ob serve that these panes are tree widgets that behave pretty much as you would expect them to The ex pand or contract control is either plus minus s
144. ITA Perspective Selection orte oto tors eoe ta eor eve see pev obe ero gues 123 11 5 Configuring Perspectives esses Hee emen nene 124 11 5 1 The Configure Perspectives dialog eee 124 11 6 Context Sensitive Menu isses mee eee 126 11 6 1 Add to Diagram uer tte creer re cese epe rina 126 11 6 2 tl Delete From Model encre eee rete rrr eren nre tnr 126 11 6 3 Set Source Path To be written cccecceceeseceeeeeeeeeeeeneeeees 127 11 6 4 Add Package d terrere tes oret peret ber tep o 127 11 6 5 Add All Classes in Namespace eee 127 viii ArgoUML User Manual 12 The Edits Pane tie ERE BEP 128 12 T ntroductiOh 23 552 eee Cert deett eh ei Eee et eee eit vd defe aes 128 12 2 Mouse Behavior in the Editing Pane eee 128 12 251 Button 1 Chek iore toot ei ote iot tere rer peer o mS 129 12 2 2 Button 1 Double Click esee 129 12 2 3 Button Motion Ceketi PRECES patton E e ESTEE VERS anette 129 12 2 4 Shift and Ctrl modifiers with Button 1 esee 130 12 2 5 Alt with Button 1 motion eee 130 12 2 6 Button 2 ACUODS nei ceot eee retener eSI EE Ie Te yes Eventus 130 12 27 Button 2 Double Chek 5 ectetur Re ERE 130 12 2 9 Button 2 MOUON or cert terere stony tues ben eme pe XX Ue Rr exe se xen 130 12 3 The tool bar n rrr Er M RIED e ES 130 12 3 1 La
145. Model and space separated e g object model S Note ArgoUML does not enforce any naming convention for stereotypes Base Class Drop down selector Any stereotype must be derived from one of the metaclasses in the UML metamodel Abstraction Actor Association AssociationEnd Attribute Beha vioralFeature CallEvent Class Classifier Collaboration Comment Com ponent Constraint DataType Exception Flow Generalization Interface Link Model ModelElement Node NodeInstance ObjectFlowState Operation Package Permission Signal Subsystem and Usage or the artifact classes that derive from them The stereotype will then be available to artifacts that derive from that same metaclass or that artifact Namespace Drop down selector Records the namespace for the stereotype This is the package hierarchy 202 Top Level Artifact Reference Modifiers Check box with entries Abstract Leaf and Root e Abstract is used to declare that artifacts that use this stereotype cannot be instantiated but must always be specialized Leaf indicates that artifacts that use this stereotype can have no further sub types while Root indicates it is a top level artifact d Caution Remember that these modifiers apply to the artifacts using the stereotype not just the stereotype e Warning ArgoUML neither imposes nor checks that artifacts using a stereotype adopt the ste reotype s modifiers Gen
146. OA amp D phases requiring backtracking to redo work The worst aspect of this is that working code does not become available until near the end of the project and very often it is only at this stage that problems with the original requirements for example with the user interface become apparent This is exacerbated by each successive stage requiring more effort than the previous so that the costs of late problem discovery are hugely expensive This is illustrated by the pyramid in Figure 3 2 Effort Involved in the Steps of the Waterfall Process Figure 3 2 Effort Involved in the Steps of the Waterfall Process The waterfall process is still probably the dominant design process However because of its limitations it is increasingly replaced by iterative processes particularly for projects where the requirements are not well defined 3 2 1 2 Iterative Development Processes In recent years a new approach has been used which aims to get at least part of the code up and running as quickly as possible to bring discovery of problems forward in the development cycle These processes use a series of mini waterfalls defining a few requirements the most important first taking them through analysis design and build to get an early version of the product with limited func tionality related to the most important requirements Feedback from this can then be used to refine the requirements spot problems etc before more w
147. Standard tab Presentation Standard tab The values for the bounds of the association role are downlighted since they are de termined by what they connect Source Standard tab but with no contents d Caution An association role should not generate any code so having this tab active is probably a mistake 306 Collaboration Diagram Artifact Reference Tagged Values Standard tab In the UML metamodel AssociationRole has the following standard tagged val ues defined persistence from the superclass Association Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed e derived from the superclass ModelElement Values true meaning the association is redundant it can be formally derived from other elements or false meaning it cannot l Note ce i g Derived association roles still have their value in analysis to introduce useful names or concepts and in design to avoid re computation l Note Ce i v The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for an Association Role 21 3 2 Association Role Property Toolbar By GO up Navigate up through the package structure Tif Delete This deletes the association role from the model a amp Warning This is a delet
148. Synch State Details Tabs The details tabs that are active for Synch states are as follows ToDoItem Standard tab Properties See Section 20 20 2 Synch State Property Toolbar and Section 20 20 3 Property Fields For Synch State below Documentation Standard tab Presentation Standard tab Stereotype Standard tab containing the stereotypes of the Synch state In the UML metamodel Synch State has no standard stereotypes defined Tagged Values Standard tab In the UML metamodel Synch State has no standard tagged values defined 20 20 2 Synch State Property Toolbar q CO up Navigate up through the package structure ga N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected synch state navigat ing immediately to the properties tab for that stereotype Tif Delete from Model This deletes the synch state from the model e Warning This is a deletion from the model not just the diagram 298 Statechart Diagram Artifact Reference 20 20 3 Property Fields For Synch State Name Text box The name of the Synch state By convention Synch state names start with a lower case letter and use bumpy caps to divide words within the name Note Ce iis ArgoUML does not enforce this naming convention Tip Synch state names are not shown on the diagram and it is not usually necessary to give them a name Container Text box Shows the container of the Sync
149. TH AssoCIati n wes iiic etie e e Cei h EE eie EDU NEU Ee ehe ore ER 249 18 11 1 Three way and Greater Associations and Association Classes 250 18 11 2 Association Details Tabs ssee 250 18 11 3 Association Property Toolbar eem 251 18 11 4 Property Fields For Association eee 251 18 12 Association End tee pte erret mir Hb Tee e AIR EE RR eS 253 18 12 1 Association End Details Tabs seen 253 18 12 2 Association End Property Toolbar eene 254 18 12 3 Property Fields For Association End essessssss 255 18 13 Dependency nete reme Len rH Ee KES b EE EEEE PY 258 18 13 1 Dependency Details Tabs seIA 258 18 13 2 Dependency Property Toolbar eeA 259 18 13 3 Property Fields For Dependency eene 259 18 14 EIS cro ME 260 18 15 Interface i5 dtd e ere rece die p eee ae 260 18 15 1 Interface Details Tabs rric erna ie EE E Ea 260 18 15 2 Interface Property Toolbar sse 261 18 15 3 Property Fields For Interface s 262 18 16 Abstraction i ore ogeteg esce ete Te iere DE e Pet E ve ie TEE SOR bene 263 18 16 1 Abstraction Details Tabs sesee 264 18 16 2 Abstraction Property Toolbar e 265 18 16 3 Property Fields For Abstraction seee 265 19 Sequence Diagram A
150. Tab That section covers Properties in general in this chapter they are linked to specific artifacts Figure 20 1 Statechart diagram artifacts 1 and Figure 20 2 Statechart diagram artifacts 2 show statechart diagrams with most possible artifacts displayed Figure 20 1 Statechart diagram artifacts 1 entry suspend activity See statecha do handling diagram sub exit resume activity resume whenfgcondition afte 2 minttes in state A1 allEvent in param int inctude seus not ready reinitialise else Figure 20 2 Statechart diagram artifacts 2 278 Statechart Diagram Artifact Reference 20 1 1 Limitations Concerning Statechart Diagrams in ArgoUML The statechart diagrams support the 7 action types defined CallAtion CreateAction DestroyAction ReturnAction SendAction TerminateAction and UninterpretedAction but there is no way to use the same action more than once Also in a few cases it is not possible to set or select the related elements e g there is no way to select a signal for a SendAction Code generation from statechart diagrams is not developed yet 20 2 State A state models a situation during which some usually implicit invariant condition holds for the parent class This invariant may be a static situation such as an object waiting for some external event to occur or some dynamic activity in progress A state is repres
151. The selected artifacts are moved to the front of any other artifacts they overlap g To Back The selected artifacts are moved to the back of any other artifacts they overlap 12 9 3 Add This sub menu only appears for artifacts that can have notes attached class interface object state pseudostate or have operations or attributes added class interface There are at most three entries New Attribute Only appears where the selected artifact is a class Creates a new attribute a on the artifact New Operation Only appears where the selected artifact is a class or interface Creates a new operation on the artifact New Comment Attaches a new comment to the selected artifact Add All Relations Only appears where the selected artifact is a class or interface Makes all relations visible that exist in the model and that are connected to the selected artifact Remove all Relations Only appears where the selected artifact is a class or interface Re moves all connected relations from the diagram without removing them from the model 12 9 4 Show This sub menu only appears with certain artifacts It is completely context dependent There are many possible entries depending on the selected artifact and its state Hide Extension Point Compartment Only appears when the extension point compart ment of a use case is displayed Hides the compartment Show Extension Point Compartment Only appea
152. There are various more detailed effects which are discussed under the descriptions of the various tools see Section 12 3 The tool bar 12 2 4 Shift and Ctrl modifiers with Button 1 Where multiple selections are to be made the CTRL key is used with button 1 to add unselected arti facts to the current selection Where an artifact is already selected it is removed from the current selec tion Clicking Button while the SHIFT key is pressed invokes the broom tool which causes the selected ar tifacts and any others swept up with them to be moved with the broom tool see Section 12 3 1 Layout Tools 12 2 5 Alt with Button 1 motion Button 1 down anywhere in the diagram while the ALT key is pressed allows to scroll the canvas in all directions with button 1 motion 12 2 6 Button 2 Actions When used over artifacts in the the editing pane this will display a context dependent pop up menu Menu entries are highlighted but not selected and sub menus exposed by subsequent mouse motion without any buttons Menu entry selection is with button 1 or button 2 See Section 12 9 Pop Up Menus for details of the specific pop up menus In case multiple elements are selected the pop up menu only appears if all the items are of the same kind In this case the functions apply to all selected elements 12 2 7 Button 2 Double Click This has no effect other than that of button 2 single click 12 2 8 Button 2 Motion Th
153. This string rep resents the coded character set identifier CCSID The second of the two tabs is labeled Java and is selected by button 1 click on its tab It provides two pairs of radio boxes 88 The Menu bar The first radio box allows selection between modeling attributes of Java classes as UML attributes the default or as UML associations to the class specified The second radio box allows selection between modeling arrays as new datatypes in their own right the default or as their base datatype with multiplicity 10 3 9 amp Page Setup This brings up the standard dialog box provided by the operating system to adjust printer paper size ori entation and other options 10 3 10 Print Shortcut Ctrl P This brings up the standard dialog box provided by the operating system allowing the current diagram to be printed out In some cases when the printing is started the dialog box of Figure 10 8 The diagram exceeds page size dialog appears Selecting the Fit to page button does print the whole diagram fitted on one page by scaling it down Which might cause all text to be too small to read in case of big diagrams but it is a quick and easy way to get an usable printout Selecting the Multiple pages option does print unscaled by dividing the diagram in pieces on as many pages as needed Pressing the close button of the dialog does the former option Figure 10 8 The diagram exceeds page size
154. Those artifacts that have specializations have a sub hierarchy showing the specializations Class Associations In this view the top level shows the model Beneath this are all diagrams and all classes All classes that have associations have a hierarchy tracking through the associated classes Residence centric In this view the model is shown at the top level with below it only Nodes and below these only components that reside on the nodes and below these components all elements that reside on the components State centric In this view the top level shows all the state machines and all activity graphics associated with classes Beneath each state machine is a hierarchy showing the statechart diagram and all of the states Be neath each state is a list of the transitions in and out of the state Beneath each activity graph is a hierarchy showing the activity diagram and all of the action states Beneath each action state is a list of the transitions in and out of the action state 123 The Explorer Transitions centric This is very similar to State centric view but under each state machine is listed the diagrams and all transitions on the diagram with states being shown as sub hierarchies under their connected transitions Similarly under each activity graph is listed the diagrams and all transitions on the diagram with ac tion states being shown as sub hierarchies under their connected transitions e Composition
155. V0 20 version of ArgoUML implementation is incomplete The reason given is not stored when the project is saved And there is no way to retrieve todo items that were resolved So it is not usefull to give a reason at all When a todo item generated by a critic is resolved then there is no way to undo this unless by re creating the object that triggered the critic 2 Send Email To Expert Activating this tool allows the user to send an Email to an expert asking for advice This works like clicking a mailto users argouml tigris org subject critic header link in your webbrowser Cs Snooze Critic This suspends the activity of the critic that generated the current to do item z The to do item and all others generated by the critic will disappear from the to do pane 152 The Details Pane The critic will wake up after a period of time Initially this period is 10 minutes but it doubles on each successive application of the Snooze button The critic can be awakened explicitly through the Critique gt Browse Critics menu see Section 10 9 4 Browse Critics Tip Some common critics can fire the whole time as you build a big diagram Some users find it useful to snooze these critics until the diagram has been completed 13 2 1 Wizards Some of the more common critics have a wizard available to help in fixing the problem The wizard comprises a series of pages one or more in the ToDo
156. a card One class per card Walk throughs are the heart of the CRC card session To walk through a scenario address each action in it one at a time First decide which class is responsible for this function The owner of the class then picks up his card and holds it up in the air When a card is up in the air it is an object and can do things The owner announces that he needs to fulfill his responsibility The responsibility is refined into smaller tasks if possible These smaller tasks can be fulfilled by the object is appropriate or they can be fulfilled by interacting with other objects collaborators If no other appropriate class exists you may need to make one and assign it to someone This is the fundamental procedure of the scenario execution G 4 The Process CRC Cards are used in the Analysis and Design phases The process for these phases differ primarily in how the classes and scenarios are chosen In the Analysis phase the classes and scenarios are in the problem space and generally derive from the requirements In the Design phase solution space classes and scenarios are added Additionally in the Analysis phase the very first session starts with no classes or scenarios to select from so a special session creates them 361 Index The use of the index in the document is done a little at random and cannot be trusted Please help in suggesting new index entries A Action 342 Active Actor 36 Activity Diagram 342
157. a design into code They aid designers in decision making mainly by providing visualization of design diagrams and simple syntactic checks Also many CASE tools provide substantial benefits in the area of version control and concurrent design mechanisms One area of design support that has been not been well supported is analysis of design decisions Current CASE tools are usable in that they provide a GUI that allows designers to access all the features provided by the tool And they support the design process in that they allow the designer to enter dia grams in the style of popular design methodologies But they typically do not provide process support to guide the designer through the design task Instead designers typically start with a blank page and must remember to cover every aspect of the design ArgoUML is a domain oriented design environment that provides cognitive support of object oriented design ArgoUML provides some of the same automation features of a commercial CASE tool but it fo cuses on features that support the cognitive needs of designers These cognitive needs are described by three cognitive theories l reflection in action 2 opportunistic design and 3 comprehension and problem solving ArgoUML is based directly on the UML 1 4 specification The core model repository is an implementa tion of the Java Metadata Interface JMI which directly supports MOF and uses the machine readable version of the UML 1 4 spe
158. age The visibility is shown in UML notation as or Extension Points This checkbox allows to reveal or hide the extensions points compartment of a usecase Bounds This defines the corners of the bounding box for a 2D artifact It comprises four numbers separated by commas These four numbers are respectively i the X coordinate of the upper left corner of the box ii the Y coordinate of the upper left corner of the box iii the width of the box and iv the height of the box All units are pixels on the editing pane This field has no effect on 1D artifacts that link other artifacts associations generalizations etc since their position is constrained by their connectedness In this case the field is downlighted Fill This drop down selector specifies the fill color for 2D artifacts It is not present for line arti facts Selecting No Fill makes the artifact transparant Selecting Custom allows to create other colors then the ones listed It causes the color selector dialog box to appear see Figure 13 9 The Custom Fill Line Color dialog box Line This drop down selector specifies the line color for artifacts Selecting No Fill makes the artifact transparant Selecting Custom allows to create other colors then the ones listed It causes the color selector dialog box to appear see Figure 13 9 The Custom Fill Line Color dia log box Shadow This drop down selector specifies the width of the shadow if any for 2D
159. age between two classifierroles se a lected using button 1 motion from the originating classifierrole to the receiving classifierrole T Message with Destroy Action Add a destroy message between two classifierroles a selected using button 1 motion from the originating classifierrole to the receiving classifierrole ay Add Vertical Space to Diagram Add vertical space to a diagram by moving all mes sages below this down Click the mouse at the point where you want the space to be added and drag down the screen vertically the distance which matches the height of the space you d like to have ad ded ay Remove Vertical Space in Diagram Remove vertical space from diagram and move all elements below up vertically Click and drag the mouse vertically over the space that you want deleted Collaboration Diagram Specific Tools Three tools are provided specific to UML artifacts on collaboration diagrams The detailed properties of these artifacts are described in the section on collaboration diagram artifacts see Chapter 21 Collabora tion Diagram Artifact Reference Cc Classifier Role Adda classifier role to the diagram Association Role Add an association role between two classifier roles selected using button 1 motion from the originating classifier role to the receiving classifier role There are 6 types of association roles offered here see Figure 12 4 The association tool selector associ ation aggregation a
160. agram Artifact Reference providing the implementation Note Although this is a text area there is no mechanism for adding more than one supplier Button 1 double click navigates to the selected entry Clients Text area Lists the artifact that is the client end of this abstraction for a realization this is the end providing the specification S Note Although this is a text area there is no mechanism for adding more than one client Button 1 double click navigates to the selected entry 266 Chapter 19 Sequence Diagram Artifact Reference 19 1 Introduction This chapter describes each artifact that can be created within a sequence diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram There is a close relationship between this material and the Properties tab of the details pane see Section 13 3 Properties Tab That section covers properties in general in this chapter they are linked to specific artifacts d Caution Sequence diagrams are not fully developed yet in ArgoUML Many aspects are not fully implemented or may not behave as expected Figure 19 1 Possible artifacts on a sequence diagram shows a sequence diagram with all possible ar tifacts displayed Figure 19 1 Possible artifacts on a sequence diagram 267 Sequence Diagram Artifact Reference 19 1 1 Limitations Concerning Sequence Diagrams in ArgoUML
161. aised signal for the operation navigating immediately to the properties tab for that raised signal a New Datatype This creates a new Datatype see Section 16 3 Datatype in the namespace of the owner of the operation navigating immediately to the properties tab for that datatype E w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected operation navigating immediately to the properties tab for that stereotype Tif Delete This deletes the operation from the model e Warning This is a deletion from the model nor just the diagram If desired the whole operation compartment can be hidden on the diagram using the presentation tab see Sec tion 18 7 2 Operation Property Toolbar or the button 2 pop up menu for the class on the diagram 240 Class Diagram Artifact Reference 18 7 3 Property Fields For Operation Name Text box The name of the operation The name of an operation has a leading lower case letter with words separated by bumpy caps Note LE E l The ArgoUML critics will complain about operation names that do not have an initial lower case letter Tip If you wish to follow the Java convention of constructors having the same name as the class you will violate this rule Silence the critic by setting the stereotype create for the constructor operation Stereotype Drop down selector There are two UML standard stereotypes for Operation from the
162. all end role names must be unique This ensures that there can be unambiguous reference to the ends of the association To fix this manually select the association and change the names of one or more of the offending ends roles using the button 2 pop up menu or the property sheet 15 4 5 Role name conflicts with member A suggestions that good design avoids role names for associations that clash with attributes or opera tions of the source class Roles may be realized in the code as attributes or operations causing code gen eration problems 15 4 6 Choose a Name Classes and Interfaces The class or interface concerned has been given no name it will appear in the model as anon Sugges tion that good design requires that all interfaces and classes are named 15 4 7 Choose a Unique Name for an Artifact Classes and Interfaces Suggestion that the class or interface specified has the same name as another in the namespace which is bad design and will prevent valid code generation 174 The Critics 15 4 8 Choose a Name Attributes The attribute concerned has been given no name it will appear in the model as anon Attribute Suggestion that good design requires that all attributes are named 15 4 9 Choose a Name Operations The operation concerned has been given no name it will appear in the model as anon Operation Suggestion that good design requires that all operations are named 15 4 10 Choo
163. amespace of its Association ees 184 15 11 2 Add Elements to Package package eese 184 15 12 Expected Usage 22 2 vce rm eter EEIT esa iS PERAE IS ERR 184 1512 1 Clean Up Diagram eene eredi decree epe 184 15 13 Methods oer tor ER e ere e a e E 184 15 13 1 Change Names or Signatures in artifact 0 0 0 0 eee ee 185 1513 2 Class Must be Abstract vcs cccccscsss shoves ous terrere rrr RR iess 185 15 13 3 Add Operations to class se 185 15 13 4 Reduce Operations on artifact 185 15 T4 Code Generation eo eerte dero gere eire e suc OP ERE ree E Ogre Pr Ux OPERE EQ 185 15 14 1 Change Multiple Inheritance to interfaces sese 185 15 15 Stereotypes i2 cierto teen tieu eso e en dese lie enttees 185 15 16 Inet tance isc eR SER eee S Eee UTC 185 15 16 1 Revise Attribute Names to Avoid Conflict ssssss 186 15 16 2 Remove lt class gt s Circular Inheritance sssesssess 186 15 16 3 Class Must be Abstract ssesee HH 186 15 16 4 Remove final keyword or remove subclasses 186 15 16 5 Illegal Generalization innert rte rte IR 186 15 16 6 Remove Unneeded Realizes from class suessess 186 15 16 7 Define Concrete Sub Class sse 186 15 16 8 Define Class to Implement interface ees 186 15
164. and It is possible to define and build a database into which data can be entered and retrieved without concern for what happens to it or is done with it On the other hand implementing a process without having any data structures for it to operate on is not very meaningful 5 1 1 Class Responsibilities and Collaborators CRC Cards The CRC methodology favors the phenomenonologists preference for analysis It is the equivalent of starting with the use cases the process aspects operations of the class diagrams and scenarios from which sequence diagrams can be initiated CRC cards and the associated methodology are described in detail in Appendix G The CRC Card Meth odology They are used again in the design phase and are further discussed in Chapter 6 Design The strength of CRC cards during analysis Common Project Vocabulary Spread Domain Knowledge Making the Paradigm Shift Live Prototyping Identifying Holes in Requirements In this phase the group should consist of two or three domain experts one object oriented technology fa cilitator and the rest of the group made up of people who are responsible for delivering the system 53 5 1 2 5 1 3 5 1 4 5 1 5 5 1 6 Analysis The first time that the Analysis phase occurs a special case of the CRC session happens as there are no classes or scenarios to choose from to define a CRC session At this point a special type of session kno
165. and if they are supported in ArgoUML or not Caution The UML 1 4 standard also specifies many stereotypes in the chapters Example Profiles one for Software Development and one for Business Modeling Due to the specialized nature of these profiles implementation in ArgoUML is postponed until a yet undeter mined moment Table 24 1 Stereotypes defined in UML 1 4 and ArgoUML StereoType Base Element ArgoUML support access Permission yes appliedProfile Package no association AssociationEnd yes auxiliary Class no 338 Built In DataTypes Classes Interfaces and Stereotypes StereoType Base Element ArgoUML support become Flow no call Usage yes copy Flow no create BehavioralFeature yes create CallEvent yes create Usage yes derive Abstraction yes destroy BehavioralFeature yes destroy CallEvent yes document Abstraction no executable Abstraction no facade Package yes file Abstraction no focus Class no framework Package yes friend Permission yes global AssociationEnd yes implementation Class no implementation Generalization yes implicit Association yes import Permission yes instantiate Usage yes invariant Constraint no library Abstraction no 339 Built In DataTypes Classes Interfaces and Stereotypes StereoType Base
166. any made to the document 2 All substantive modifications including deletions be either clearly marked up in the document or else described in an attachment to the document 3 Finally while it is not mandatory under this license it is considered good form to offer a free copy of any hardcopy and CD ROM expression of an Open Publication licensed work to its author s F 6 License Options The author s and or publisher of an Open Publication licensed document may elect certain options by appending language to the reference to or copy of the license These options are considered part of the license instance and must be included with the license or its incorporation by reference in derived works A To prohibit distribution of substantively modified versions without the explicit permission of the au thor s Substantive modification is defined as a change to the semantic content of the document and excludes mere changes in format or typographical corrections To accomplish this add the phrase Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder to the license reference or copy B To prohibit any publication of this work or derivative works in whole or in part in standard paper book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder To accomplish this add the phrase Distribution of the
167. arching e A selector labeled Find in allows the search to be made over the entire project the default or as a sub search over the results of a previous search When opened a list of all the search result tabs appears Beneath these boxes is the button Clear Tabs This clears the display of tabs with the results from previous searches see below This button is downlighted if there are no tabs but the Help tab 104 The Menu bar e And finally there is the button Find This causes the search specified in the text boxes and selectors above to be executed The results are displayed in a tab taking up the lower two thirds of the page The lower two thirds of the dialog comprises an initial tab labeled Help giving summary help and further tabs displaying the results of searches These search tabs are labeled with a summary of the search element in diagram and are divided horizontally in two halves Button double clicking on these tabs removes the tab and spawns a new window that contains the tab contents i e the search results This window can be moved and sized at will This does not work for the help tab The top half is labeled Search Results followed by a count of the number of items found It com prises a table with one row for each element artifact and four columns The width of the columns can be adjusted Type Lists the type of element artifact Name Lists the name given to the element artifact
168. ard V 1 4 e Deleting a statechart diagram also deletes the statemachine it represents and hence also all the artifacts owned by the statemachine This because a statechart diagram does map into a StateMachine according the UML standard V 1 4 11 6 3 Set Source Path To be written This entry on the pop up menu 11 6 4 Add Package This entry on the pop up menu is available whenever an artifact is selected that may contain a package e g a package After activating this menu the artifact will own a new package 11 6 5 Add All Classes in Namespace This entry on the pop up menu is available for Class Diagrams only Activating this menu item will add all classes in the current namespace to the diagram They will be located at the top left corner obviously a perfect occasion to use the Arrange gt Layout function in the menu 127 Chapter 12 The Editing Pane 12 1 Introduction Figure 12 1 Overview of the editing pane shows the ArgoUML window with the editing pane high lighted Figure 12 1 Overview of the editing pane fy BES B o Ug ye umuren at A newOperation void py pene cA vtr F iti lating to UI une vtm Ps tg issues No known children an predicate2 boolean Around 76 atpresent s etR es our ce children at pr Examples which 2 CrConsider Singleton CrSingletonViolated CrConstructorNeede eomefrom several other packages sscreate gt gt
169. are operations for example addition on the integers but when I perform 3 4 the result is a new number 3 and 4 are unchanged by the exercise Within UML 1 3 DataType is a sub class of the Classifier metaclass It embraces the predefined primitive types byte char double float int long and short the predefined enumeration boolean and user defined enumeration types Note J E Also void is implemented as a datatype within ArgoUML Within ArgoUML new datatypes may be created using the New datatype button on the property tabs of the model and packages in which case the new datatype is restricted in scope to the package as well as the properties tab for datatype Note UML 1 3 allows user defined datatypes to be placed on class diagrams This is not permit ted in ArgoUML 16 3 1 Datatype Details Tabs The details tabs that are active for datatypes are as follows ToDoItem Standard tab Properties See Section 16 3 2 Datatype Property Toolbar and Section 16 3 3 Property Fields For Data type below Documentation Standard tab See Section 13 4 Documentation Tab 193 Top Level Artifact Reference Source Standard tab Unused One would expect a class declaration for the new datatype to support code generation Tagged Values Standard tab In the UML metamodel Datatype has the following standard tagged values defined persistence from the superclass Classifier Values
170. areas of functionality that we must address in any solution This is our vision document and should be just a few pages long For example the top level view of an automated teller machine ATM might be that it should support the following 1 Cash deposit cash withdrawal and account inquiries by customers 2 Maintenance of the equipment by the bank s engineers and unloading of deposits and loading of cash by the local bank branch 3 Audit trail for all activities sent to the bank s central computer From this top level view we can extract the principal activities of the system and the external agents people equipment that are involved in those activities These activities are known as use cases and the external agents are known as actors Actors may be people or machines From a practical standpoint it is worth knowing the stakeholder be hind any machine since only they will be able to engage with the requirements capture process Use cases should be significant activities for the system For example customer use of the ATM machine is a use case Entering a PIN number is not 33 4 2 1 Requirements Capture There is a gray area between these two extremes As we shall see it is often useful to break very large use cases into smaller sub use cases For example we may have sub use cases covering cash deposit cash withdrawal and account inquiry There is no hard and fast rule Some architects will prefer a small number
171. artifacts It is not present for line artifacts Figure 13 9 The Custom Fill Line Color dialog box 157 The Details Pane ii Custom Line Color mimi mimm mim ud np i a ad aft ENS F NE TIT NNMEMISIISENIENEN NHNS B E SNMIMIIINISISISIISNN RRSP EERE ELE Preview Sample Text Sample Text Sample Tet Sample Text Figure 13 10 The Custom Fill Line Color dialog box 158 The Details Pane ii Custom Line Color Preview m m Sample Text Sample Text NH Sample Text Sample Text Figure 13 11 The Custom Fill Line Color dialog box 159 The Details Pane ii Custom Line Color Preview m m Sample Text Sample Text NH Sample Text Sample Text 13 6 Source Tab This tab shows the source code that will be generated for this artifact in the selected language ArgoUML generates the code e g for classes and interfaces The code shown here may be saved in the indicated files with the aid of the functions in the Generation menu Figure 13 12 The Source Tab of a class 160 The Details Pane Li newAttr int newOperation void vi s EZ 4 em 4 ToDo Item Properties amp Documentation A Presentation amp Source 4 Constraints Stereotype A Tagged Values A Checklist Java Test java v pre This class tests it all public class Test
172. ase etc 2 Tip This does not prevent artifacts from other namespaces packages appearing on the diagram They can be added from the explorer using Add to Diagram from the button 2 pop up menu 10 6 3 i3 New Sequence Diagram This menu entry creates a blank sequence diagram and selects that diagram in the editing pane It also creates a Collaboration UML element which is a container for the elements shown on the new dia gram If a class is currently selected a sequence diagram and a collaboration will be created that repres ent the behaviour of that class This means that the created elements will be shown within the class in the explorer hierarchy under Package centric view and artifacts created on the diagram will be created within the namespace of the collaboration A sequence diagram may not only represent the behavior of a class but also of any other classifier such as interface use case etc It is also possible to make sequence diagrams for an operation 10 6 4 2 New Collaboration Diagram This menu entry creates a blank collaboration diagram and selects that diagram It also creates a Col laboration UML element which is a container for the elements shown on the new diagram If a 107 The Menu bar package is selected when this menu item is activated the collaboration diagram will be created within a collaboration within that package This means that it will be shown within the collaboration within the package
173. asses of the owning class package The attribute is available only to artifacts contained in the same package Changeability Radio box with entries addOnly changeable and frozen e addOnly Meaningful only if the multiplicity is not fixed to a single value Additional values may be added to the set of values but once created a value may not be removed or altered e changeable There are no restrictions of modification frozen Also named immutable The value of the attribute may not change during the life time of the owner class The value must be set at object creation and may never change after that This implies that there is usually an argument for this value in a constructor and that there is no operation that updates this value Static Check box for static If unchecked the defaults then the attribute has instance scope If checked then the attribute is static i e it has class scope Static attributes are indicated on the diagram by underlining 18 7 Operation An operation is a service that can be requested from an object to effect behavior In the UML metamodel itis a sub class of BehavioralFeature which is itself a sub class of Feature In the diagram an operation is represented on a single line within the operation compartment of the class Its syntax is as follows visibility name parameter list return type expression property string You can edit this line directly in the diagram by double
174. associated with a create ac tion i e a solid line with a solid arrow head terminating at the head of the created instance g Note Because the current release of ArgoUML does not fully implement actions there is no en forcement of the relationship to a create action 19 6 Stimulus Destroy This tool creates a stimulus associated with a destroy action on the diagram creating at the same time the associated link between sender and receiving instances 274 Sequence Diagram Artifact Reference All details tabs and properties are identical to to that of stimulus in general see Section 19 3 Stimulus Its graphical representation on the diagram is that of a stimulus associated with a destroy action i e a solid line with an open arrow head terminating at a cross at the bottom of the destroyed in stance s time line Note Because the current release of ArgoUML does not fully implement actions there is no en forcement of the relationship to a destroy action 19 7 Stimulus Send This tool creates a stimulus associated with a send action on the diagram creating at the same time the associated link between sender and receiving instances All details tabs and properties are identical to to that of stimulus in general see Section 19 3 Stimulus Its graphical representation on the diagram is that of a stimulus associated with a send ac tion i e a solid line with half an open arrow head Because the current
175. ation 191 Extend Relationship 221 Extend Relationship in a Use Case Diagram 47 Extension Point 45 211 214 Generalization relationship in a Use Case Diagram 48 Include Relationship in a Use Case Diagram 47 Package 191 Qualifier 254 310 Stereotype 191 195 199 214 217 221 224 228 232 236 240 244 247 251 254 259 262 269 276 280 283 287 289 291 293 295 298 303 310 312 318 324 326 328 330 Use Case 44 211 Critic 343 Critique Menu 21 D Datatype 193 Datatype Details Tabs 193 Datatype Literals 197 Datatype Modifiers 196 Datatype Name 195 Datatype Properties 193 Datatype Property Fields 195 Datatype Property Toolbar 194 Datatype Stereotype 195 Datatype Tagged Values 194 Datatype Visibility 196 Default Value of Parameter 245 Delete From Model 95 Dependency 258 Dependency Clients 260 Dependency Details Tabs 258 Dependency Name 259 Dependency Namespace 260 Dependency Stereotype 260 Dependency Suppliers 260 Design xvii 1 7 12 Object Oriented 345 Opportunistic 345 Design Process Iterative 344 Waterfall 348 Details Tabs for Actor 207 for Association 250 for Association End 253 for Attribute 235 for Class 230 for Datatype 193 for Dependency 258 for Diagrams 205 for Enumeration 198 for Extend Relationship 220 for Extension Point 213 for Generalization 216 for Include Relationship 223 for Model 190 for Operation 239 fo
176. ation which is handled by the documentation tab under ArgoUML 21 4 2 Association End Role Property Toolbar By GO up Navigate up to the association role to which this end role belongs Go Opposite 309 Collaboration Diagram Artifact Reference This navigates to the other end of the association role New Qualifier Lt This creates a new Qualifier for the selected association end role navigating immediately to the properties tab for that qualifier g Warning Qualifiers are only partly supported in ArgoUML V0 18 Hence activating this button creates a qualifier in the model which is not shown on the diagram Also the proper ties panel for a qualifier equals that of a regular attribute m w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected association end role navigating immediately to the properties tab for that stereotype Tif Delete This deletes the selected association end from the model Eos Note C This button is downlighted for binary association roles since an association needs at least two ends Only for N ary associations this button is accessable and deletes just one end from the association 21 4 3 Property Fields For Association End Role Name Text box The name of the association end role which provides a role name for this end of the asso ciation role This role name can be used for navigation and in an implementation context provide
177. avior A State is generated to a closed set of combination of values on these member variables An Event is generated as a call to a member method that can change the state These methods would then typically have one big switch statement splitting on the current state 71 Code Generation Reverse Engineering and Round Trip Engineering e A Guard is generated to an if statement in the event member method in the branch for the correct state A Transition is generated as an assignment of some state variable An Action is generated as a function call 7 3 Code Generation in ArgoUML 7 3 1 Static Structure Most of the generation can be done automatically by the provided language modules Files are generated in a directory hierarchy that need to be filled in by the actual code 7 3 2 Interactions and statechart diagrams There is currently no support for this in ArgoUML not for any language 7 4 Reverse Engineering Reverse Engineering is used for two main purposes 1 To get previously developed classed into the model to build upon 2 To geta UML view of previously developed classes to understand how they work Essentially this does the opposite of Code Generation 7 5 Round Trip Engineering Round Trip Engineering makes it possible to switch perspective while doing the design Create some classes in a class diagram Write some code for some of the operations or functions using your favorite editor Move th
178. be by i any classifier ii only by the source classifier or iii only the source Classifier and its children 18 13 Dependency Dependency is a relationship between two artifacts showing that one depends on the other Within the UML metamodel Dependency is a sub class of Relationship Dependency is represented as a dashed line with an open arrow head from the depending artifact to that which it is dependent upon 18 13 1 Dependency Details Tabs The details tabs that are active for dependencies are as follows ToDoItem Standard tab Properties See Section 18 13 2 Dependency Property Toolbar and Section 18 13 3 Property Fields For De pendency below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab Note The values for the bounds of the dependency are downlighted given the dependency is tied to a particular modelelement Tagged Values Standard tab In the UML metamodel Dependency has no tagged values of its own but through superclasses has the following standard tagged values defined 258 Class Diagram Artifact Reference derived from the superclass ModelElement Values t rue meaning the dependency re lationship is redundant it can be formally derived from other elements or false meaning it cannot Note Derived dependencies still have their value in analysis to introduce useful names or concepts 18 13 2 Dependency Pr
179. be written 6 13 2 Components To be written To be written 6 13 2 1 Component Instances To be written To be written 6 13 3 Relationships between nodes and components To be written To be written 6 13 3 1 Dependency To be written To be written 6 13 3 2 Associations To be written To be written 6 13 3 3 Links To be written To be written 6 14 System Architecture To be written To be written 6 15 Case Study To be written 6 15 1 CRC Cards To be written To be written 6 15 2 Packages To be written To be written 6 15 2 1 Identifying Packages To be written To be written 6 15 2 2 Datatypes and Stereotypes To be written To be written 6 15 3 Class Diagrams To be written To be written 6 15 3 1 Identifying classes To be written To be written 6 15 3 2 Identifying associations To be written To be written 68 Design 6 15 3 3 Specifying Attributes and Operations To be written To be written 6 15 4 Sequence Diagrams To be written To be written 6 15 4 1 Identifying actions To be written To be written 6 15 5 Collaboration Diagrams To be written To be written 6 15 5 1 Identifying Messages To be written To be written 6 15 6 Statechart Diagrams To be written To be written 6 15 7 Activity Diagrams To be written To be written 6 15 8 The Dep
180. between Analysis and Design is reflected in their use of many of the same UML tools In this chapter we will mostly be reusing UML technology we have already met once The big step is casting everything into concrete terms We move from the abstract concepts of analysis to their con crete realization Once again the recursive and iterative nature of our process means we will come back to the Design phase many times in the future 6 1 The Design Process To be written To be written 6 1 1 Class Responsibilities and Collaborators CRC Cards Strength of CRC cards during Design e Spreading Objet Oriented Design Expertise Design Reviews Framework for Implementation Informal Notation e Choice of supporting software components e Performance Requirements In this phase developers replace some of the domain experts in the group but there should always be at least one domain expert in the group The focus of the group moves from what is to be done to how to do it The classes from the solution do main are added to those defined in the analysis phase Think about what classes are needed to make the system work Do you need a List class to hold objects Do you need classes to handle exceptions Do you need wrapper classes for other subsystems New classes that are looked for in this part are classes that support the implementation of the system During the design phase the distinction between class and object becomes important
181. bs that are active for actors are as follows ToDoItem Standard tab Properties See Section 17 2 2 Actor Property Toolbar and Section 17 2 3 Property Fields For Actor be low Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The fill color is used for the stick man s head Source Standard tab Usually no code is provided for an actor since it is external to the system Note The source tab content can be changed but the changes are not retained Constraints Standard tab ArgoUML only supports constraints on Classes and Features Attributes Operations Receptions and Methods so this tab is grayed out Tagged Values Standard tab In the UML metamodel Actor has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed Tip Actors sit outside the system and so their internal behavior is of little concern and this tagged value is best ignored semantics from the superclass Classifier The value is a specification of the se mantics of the actor derived from the superclass ModelElement Values t rue meaning the actor is redund ant it can be formally derived from other elements or false meaning it cannot 207 Use Case Diagram Artifact Referenc
182. but the simplest use cases is too complex to be placed directly in the tab The project should also have a separate vision document and supplementary requirements specification A text annotation on diagrams may be used to refer to these if the user finds this helpful Warning The documentation tab includes a Deprecated check box The state of this flag is not preserved over save and load in the current release of ArgoUML System Boundary Box ArgoUML provides a series of tools to provide arbitrary graphical annotation on diagrams we have already mentioned the text tool These are found at the right hand end of the editing pane toolbar and are fully documented in the reference manual see Chapter 12 The Editing Pane The rectangle tool can be used to draw the boundary box Use the button 2 context sensitive Ordering pop up menu to place it behind everything else However there is no way to change its fill color from the default white You may therefore prefer to draw the boundary box as four lines This is the method used for the diagrams in this chapter ze Note Ce E The editing pane in ArgoUML has a grid to which objects snap to aid in drawing The size of this grid and its effect may be altered through the View menu using Adjust Grid and Adjust Grid Snap This is described fully in the reference manual see Chapter 10 The Menu bar 4 5 Case Study 4 5 1 4 5 1 1 Vision Document A vision document contains more tha
183. but you will have to set each of the association ends navigation property reached from the property tab of the association and the diagram does not show any arrows in this case This is considered bad design practice it will trigger a critic in ArgoUML so is only of theoretical interest 146 The Editing Pane Note UML does not permit navigability from an interface to a class ArgoUML does not prevent this 12 10 Notation Notation is the textual representation on the diagram of a modelelement or its properties 12 10 1 Notation Languages ArgoUML supports showing notation in different languages By default all text is shown in UML nota tion but the menus contain an item to select between Java and UML With plugin modules it is even possible to select other languages such as C and PHP but the current 0 22 version of ArgoUML does not show any difference Figure 12 7 A class in UML notation shows a class in UML notation while Figure 12 8 A class in Java notation shows the same class in Java notation Figure 12 7 A class in UML notation newAttr int Tnew Operationg void Figure 12 8 A class in Java notation public int newAttr public void new Operationd 12 10 2 Notation Editing on the diagram Most text shown on a diagram may be edited by double clicking button 1 on the text This causes a edit box to be shown with the previous text selected ready for amending Also the
184. ch all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for an Instance 23 5 2 Component Instance Property Toolbar By CO up Navigate up through the package structure gy N w Stereotyp 330 Deployment Diagram Artifact Reference This creates a new Stereotype see Section 16 5 Stereotype for the selected component instance navigating immediately to the properties tab for that stereotype Tif Delete This deletes the component instance from the model Ea Warning This is a deletion from the model not just the diagram To delete a component instance from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 23 5 3 Property Fields For Component Instance Name Text box The name of the component instance By convention component instance names start with a lower case letter and use bumpy caps to divide words within the name S Note ArgoUML does not enforce this naming convention Stereotype Drop down selector Component instance has no stereotypes by default in the UML standard Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows to change the namespace for the component instance This is the package hie
185. change after save and load 10 3 15 Save Configuration ArgoUML has various user specific configurations that can be set through the Settings entry on the Edit menu see Section 10 4 5 Settings or directly on the various panes Also the main window size and location is such a setting Activating this menu entry causes the information to be saved in the file argo user properties The location of this file is in the users home directory which is defined as user home and can be determined as described in Section 10 4 5 2 Environment Tab This is a text file which you can edit to configure ArgoUML 10 3 16 Most Recent Used Files ArgoUML remembers a few of the most recently saved files and lists them here to enable loading then in the most simple way The maximum number of files that is listed here can be adjusted in the Edit gt Settings menu The list of files is stored in the argo user properties file in the user s home directory 10 3 17 Exit Shortcut Alt F4 This closes down ArgoUML A warning message will pop up if you have a project open with unsaved changes asking if you wish to save it See Figure 10 11 The save changes dialog The options are Yes save the project and exit ArgoUML No do not save the project but still exit ArgoUML and 93 The Menu bar Cancel do not save the project and do not exit ArgoUML The dialog box can also be closed by c
186. chart diagram Moore Mealy Hierarchical diagrams To be written 5 6 2 Advanced Statechart Diagrams To be written To be written 5 6 2 1 Hierarchical Statechart Diagrams To be written To be written 5 7 Creating Statechart Diagrams in ArgoUML 5 7 1 Statechart Diagrams To be written To be written 5 7 1 1 Creating a Statechart Diagram Select a class then you can create a statechart diagram 5 7 2 States To be written To be written 56 5 7 2 1 5 7 3 5 7 4 5 7 5 5 7 5 1 Analysis Editing a Composite State When editing a composite state how do you provide do and event for a composite state The answer is to select a class then you can create a statechart diagram Transitions To be written To be written Actions To be written To be written Advanced Statechart Diagrams To be written To be written Hierarchical Statechart Diagrams To be written To be written 5 8 Realization Use Cases To be written To be written 5 9 Creating Realization Use Cases in Argo 5 10 5 10 1 UML To be written To be written Case Study To be written Regardless of which methodology you use at this time you are undoubtedly going to take the problem statement from Section 4 5 Case Study and extract the nouns from it This list should be compacted to contain only those nouns that are expected to result in a class This effort re
187. cification provided by the OMG Furthermore it is our goal to provide comprehensive support for OCL the Object Constraint Language and XMI the XML Model Interchange format ArgoUML was originally developed by a small group of people as a research project ArgoUML has many features that make it special but it does not implement all the features that commercial CASE tools provide The current V0 20 release of ArgoUML implements all the diagram types of the UML 1 4 standard http www omg org cgi bin doc formal 0 1 09 67 versions of ArgoUML prior to 0 20 implemented the UML 1 3 standard http www omg org cgi bin doc formal 00 03 01 It is written in Java and runs on every computer which provides a Java 2 platform of Java 1 4 or newer It uses the open file formats XMI http www omg org cgi bin doc formal 02 01 01 XML Metadata Interchange format for model information and PGML http www w3 org TR 1998 NOTE PGML Precision Graphics Markup Language for graph information for storage When ArgoUML implements UML 2 0 PGML will be replaced by the UML Diagram Interchange specification This manual is the cumulative work of several people and has been evolving over several years Connec ted to the release 0 10 of ArgoUML Jeremy Bennett wrote a lot of the new material that was added to the earlier versions by Alejandro Ramirez Philippe Vanpeperstraete and Andreas Rueckert He also ad XVil Preface ded things from some o
188. click navigates to the selected attribute Button 2 gives a pop up menu with two entries which allow reordering the attributes Move Up Only available where there are two or more attributes listed and the attribute selec ted is not at the top It moves the attribute up one position Move Down Only available where there are two or more attributes listed and the attribute se lected is not at the bottom It moves the attribute down one position Association Ends Text box Lists any association ends see Section 18 11 Association of associations connected to this class Button 1 double click navigates to the selected entry Operations Text area Lists all the operations see Section 18 7 Operation defined on this class Button 1 click navigates to the selected operation Button 2 gives a pop up menu with two entries which al low reordering the operations ove Up Only available where there are two or more operations listed and the operation se lected is not at the top It moves the operation up one position e Move Down Only available where there are two or more operations listed and the operation selected is not at the bottom It moves the operation down one position Owned Elements Text area A listing of artifacts contained within the classes namespace This is where any inner class see Section 18 5 2 Class Property Toolbar will appear Button 1 double click on any of the artifacts navigates to t
189. could be generated for an include relationship ToDoItem Standard tab Properties See Section 17 10 2 Include Property Toolbar and Section 17 10 3 Property Fields For Include below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab S Note The values for the bounds of the include relationships are downlighted since the in clude relationship is represented by a line between a particular pair of use cases Tagged Values Standard tab In the UML metamodel Include has the following standard tagged values defined e derived from the superclass ModelElement Values true meaning the include rela tionship is redundant it can be formally derived from other elements or false meaning it cannot D Note Derived include relationships could have their value in analysis to introduce useful names or concepts 17 10 2 Include Property Toolbar 223 Use Case Diagram Artifact Reference By CO up Navigate up through the package structure of the model For a include this will be the package con taining the include gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected include relationship navigating immediately to the properties tab for that stereotype Tif Delete This deletes the selected include relationship from the model e Warning This is a deletion from the model not just the diagram To delet
190. ction in which navigation is possible This means that the default with both ends navigable has no arrows ordered When placed on one end specifies whether the set of links from the other instance to this instance is ordered The ordering must be determined and maintained by Operations that add links It represents additional information not inherent in the objects or links themselves Possibilities for the checkbox are Unchecked The links form a set with no inherent ordering Checked A set of ordered links can be scanned in order Static To be written Specification List Designates zero or more Classifiers that specify the Operations that may be applied to an In stance accessed by the AssociationEnd across the Association These determine the minimum inter face that must be realized by the actual Classifier attached to the end to support the intent of the As sociation May be an Interface or another Classifier The type of classifier is indicated by an icon Button 1 double click navigates to the selected classifier button 2 click brings a pop up menu with one entry Add Add a new specification classifier This opens the Add Remove Specifications dialog box see figure below which allows choosing between all possible classifiers and adding or remov ing them to the selected list Figure 18 4 The Add Remove Specifications dialog box 256 Class Diagram Artifact Reference wi Add Remove Specifications C
191. d 3 For critics 3 For critics buit 3 For general critics D anon Dependency Examples which CrConsider Singleton CrSingletonViolated CrConstiuctorNeede i aot SSS ge i anon Dependency Lo eS T anon Dependency packages lt lt create gt gt CrC onsiderSingleton lt lt create gt gt CrSingletonViolated lt lt create gt gt CrC onstructorl A predicate2 boolean predicate2 boolean predi X boolean anon Generalization Name 73 Define Concrete Sub Cle Stereotype Add Instance Variables ti Add Associations to void Discriminator 3 Add Operations to void Y Namespace This pane provides access to the advice that comes from the critics processes running within ArgoUML A selector box at the top allows a choice of how the data is presented a button allows the display of the hierarchy to be changed and there is an indicator of the number of to do items identified More information on critics can be found in the discussion of the Critique menu see Section 10 9 The Critique Menu 14 2 Mouse Behavior in the To Do Pane Behavior of the mouse in general and the naming of the buttons is covered in the chapter on the overall user interface see Chapter 8 Introduction 169 The To Do Pane 14 2 1 Button 1 Click This action is generally used to select an item for subsequent operations Within the hierarchical di
192. d as is without warranty of any kind express or implied including but not limited to the implied warranties of merchantability and fit ness for a particular purpose or a warranty of non infringement F 4 Requirements On Modified Works All modified versions of documents covered by this license including translations anthologies compil 357 Open Publication License ations and partial documents must meet the following requirements 1 The modified version must be labeled as such 2 The person making the modifications must be identified and the modifications dated 3 Acknowledgement of the original author and publisher if applicable must be retained according to normal academic citation practices 4 The location of the original unmodified document must be identified 5 The original author s or authors name s may not be used to assert or imply endorsement of the resulting document without the original author s or authors permission F 5 Good Practice Recommendations In addition to the requirements of this license it is requested from and strongly recommended of redis tributors that 1 If you are distributing Open Publication works on hardcopy or CD ROM you provide email noti fication to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze to give the authors time to provide updated documents This notification should de scribe modifications if
193. d Stereotypes 24 1 Introduction This chapter describes the datatypes classes interfaces and stereotypes which by default are built in to ArgoUML Datatypes classes and interfaces are generally available for use anywhere a class may be selected in the properties tab The most common use is for return type and parameter types in method signatures 24 1 1 Package Structure ArgoUML datatypes classes and interfaces are effectively organized as a hierarchy beneath the overall model itself They are grouped in four packages lang math net and util themselves subpackages of java which is a subpackage of the model itself Figure 24 1 Hierarchy of datatypes classes and interfaces within ArgoUML shows this structure Figure 24 1 Hierarchy of datatypes classes and interfaces within ArgoUML 334 Built In DataTypes Classes Interfaces and Stereotypes E EA defaut E java El lang Boolean Byte Char Double E Float Integer Long Object E Short String E math BigDecimal Bialnteger E net o Ei t ES URL il Date Time Vector Collection erator List Set SortedSet boolean byte char double float int long short void 335 Built In DataTypes Classes Interfaces and Stereotypes 24 1 2 Exposure in the model 24 2 24 3 You will not find build in DataTypes Classes and Interfaces exposed within the model by default i e they are not present in the ex
194. d at this point to pay by cash credit card etc Within the UML metamodel Extend is a sub class of Relationship 219 Use Case Diagram Artifact Reference An extend relationship is represented as a dotted link with an open arrow head and a label extend If a condition is defined it is shown under the extend label see Figure 17 1 Possible artifacts on a use case diagram 17 9 1 Extend Details Tabs The details tabs that are active for extend relationships are as follows gne Note Lg There is no source tab since there is no source code that could be generated for an extend relationship ToDoItem Standard tab Properties See Section 17 9 2 Extend Property Toolbar and Section 17 9 3 Property Fields For Extend below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab Note ie The values for the bounds are downlighted since the extend is tied to a particular pair of use cases Source Standard tab You would not expect to generate any code for an extend relationship so this is empty Tagged Values Standard tab In the UML metamodel Ext end has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the extend relation ship is redundant it can be formally derived from other elements or false meaning it can not Note Derived extend relationships could have their value in ana
195. d state machine can be entered at any of its substates or through its default initial pseudostate Similarly it can be exited from any substate or as a result of the invoked state machine reaching its final state The non default entry and exits are specified through stub states In the UML metamodel StubState is a child of State 285 20 8 20 8 1 Statechart Diagram Artifact Reference Every Stub State has a label on the diagram which corresponds to the pathname represented by the Reference State attribute of the stub state The description of the details panels of a stub state is almost identical to that of a pseudo state see Sec tion 20 11 Pseudostate and so is not duplicated here The only difference is one additional field Reference Stat Drop down selector Allows entering the path name of the reference state Transition A transition is a directed relation between a source state any kind e g composite state and a destina tion state any kind e g composite state Within the UML metamodel Transition is a sub class of ModelElement A transition is represented on a statechart diagram in ArgoUML as a line with arrow connecting the source to the destination state Next to this line is a string containing the following three parts The trig ger event e g a Call Event which may have parameters between brackets Next follows if any the guard in square brackets Finally if there is an
196. de en eut de etr edg 57 5101 CRC Cards a SRL HG eR eats 57 5 10 2 Concept Class Diagrams To be written sees 58 5 10 3 System Sequence Diagrams To be written esses 58 5 10 4 System Statechart Diagrams To be written esses 58 5 10 5 Realization Use Cases To be written sees 58 Oz DESIGN E Em 59 6 1 The Design Process To be Written sseesseee mm 59 6 1 1 Class Responsibilities and Collaborators CRC Cards 59 6 1 2 Package Diagram To be written ess A 60 6 1 3 Realization Class Diagrams To be written sese esses 60 6 1 4 Sequence Diagrams and Collaboration Diagrams To be written 60 6 1 5 Statechart Diagrams and Activity Diagrams To be written 60 6 1 6 Deployment Diagram To be written eee 60 6 1 7 Documents To be written ssssssese m 60 6 2 Package Diagrams To be written sesssss ca teen eeee sean eene eens 60 6 2 1 The Package Diagram To be written ee 60 6 2 2 Advanced Package Diagrams To be written sues 60 6 3 Creating Package Diagrams in ArgoUML sse 60 6 3 1 Packages EET 60 ArgoUML User Manual 6 3 2 Relationships between packages To be written ss 61 6 3 3 Advanced Package Features To be written
197. de rela tionship a dotted arrow from the main use case to the subsidiary with the label include Figure 4 4 Use case diagram for an ATM system showing include relationships 38 Requirements Capture Maintain ATM 5 include b gificlude f Maintain Equipment Reload ATM 1 3 Bank Engineer Local Bank Official Customer Central Computer include d dct E x include De posit Cash Include relationships are fine for breaking down the use case behaviors in to hierarchies However we may also want to show a use case that is an extension to an existing use case to cater for a particular cir cumstance In the ATM example we have a use case covering routine maintenance of the ATM Maintain Equip ment We also want to cover the special case of an unscheduled repair caused by the ATM detecting an internal fault This is shown in UML by the extend relationship In the main use case we specify a name for a location in the description where an extension to the behavior could be attached The name and location are shown in a separate compartment within the use case oval The representation extend relationship is the same as the include relationship but with the label extend Alongside the extend relationship we spe cify the condition under which that behavior will be attached Figure 4 5 Use case diagram for an ATM system showing an extend relationship shows the ATM use case d
198. de with ArgoUML you still need to implement method bod ies though to get usable results 3 4 3 4 2 Generating Code for Methods At the moment you cannot write code for methods operations within ArgoUML The source pane is editable but the changes are ignored ArgoUML is a pure design tool for now no IDE functionality but the desire is there You might consider using Forte and ArgoUML together it s a good work around You can help us out there if you d like 28 UML Based OOA amp D 3 4 4 Working With Design Critics 3 4 4 1 The To Do Pane Messages From the Design Critics Where do we stand now A new project has been created and is connected to the file FirstPro ject argo Figure 3 9 ArgoUML Window Having Saved FirstProject zargo shows how your ArgoUML window should look at this stage Figure 3 9 ArgoUML Window Having Saved FirstProject zargo vf ArgoUML Mk x File Edit view Create Diagram Arrange Generation Critique Tools Help Package centric v F3 untitledModel Class Diagram 1 Usecase Diagram 1 By Priority 2items f Gi High J Medium EJ Low Finish The project contains a top level package called unt itledModel which contains a class diagram and a use case diagram If we look carefully at the screen we can see that the Medium folder in the To Do pane the lower left pane must contain some items
199. defined datatypes to be placed on class diagrams This is not yet pos sible in ArgoUML 16 4 1 Enumeration Details Tabs The details tabs that are active for enumerations are as follows ToDoItem Standard tab Properties See Section 16 4 2 Enumeration Property Toolbar and Section 16 4 3 Property Fields For Enu meration below Documentation Standard tab See Section 13 4 Documentation Tab Source Standard tab Stereotype Standard tab The UML metamodel has the following stereotypes defined by default for a Classifier which also apply to an Enumeration metaclass from the superclass Classifier powertype from the superclass Classifier process from the superclass Classifier e thread from the superclass Classifier utility from the superclass Classifier Tagged Values Standard tab In the UML metamodel Enumeration has no standard tagged values defined 16 4 2 Enumeration Property Toolbar By CO up Navigate up through the composition structure 198 Top Level Artifact Reference pg New datatype This creates a new datatype see Section 18 5 Class within the same package as the current enu meration New enumeration literal This creates a new enumeration literal within the enumeration navigating immediately to the prop erties tab for that literal H New Operation L This creates a new operation within the enumeration navigating immediately to
200. depressed Figure 12 6 Some examples of Selection Action Buttons Class Interface Selection action buttons offer common operations on the selected object For example a class node has a button at 12 o clock for adding a superclass one at 6 o clock for adding a subclass and buttons at 3 o clock and 9 o clock for adding associations These buttons support a click or drag interaction a single click creates a new related class at a default position relative to the original class and creates a generalization or association a drag from the button to an existing class creates only the generalization or association and a drag to an empty space in the diagram creates a new class at the mouse position and the generalization or association ArgoUML provides some automated layout support so that click ing the subclass button will position the new classes so that they do not overlap Selection action buttons are transparent They have a visibly recognizable rectangular shape and size and they contain an icon that is the same as the icon used for the corresponding type of design element on the standard toolbar However these icons are unfilled line drawings with many transparent pixels This allows selection action buttons to be overlaid onto the drawing area without overly obscuring the diagram itself Also the buttons are only drawn when the mouse is over the selected artifact if any part of the diagram is obscured the
201. der ArgoUML Checklist Standard tab for a Classifier 19 2 2 Object Property Toolbar d GO up Navigate up through the package structure ga N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected object navigating immediately to the properties tab for that stereotype Tif Delete This deletes the object from the model e Warning This is a deletion from the model not just the diagram To delete an object from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 19 2 3 Property Fields For Object 269 Sequence Diagram Artifact Reference Name Text box The name of the object By convention obje bumpy caps to divide words within the name ES Note ce y ArgoUML does not enforce this naming Stereotype ct names start with a lower case letter and use convention Drop down selector Object has no stereotypes by default in the UML standard Navigate Stereotype icon If a stereotype has been selected this will Section 18 4 Stereotype Namespace navigate to the stereotype property panel see Text box Records the namespace for the object This is the package hierarchy Stimuli Sent Text area Lists the stimuli sent to this object Stimuli Received Text area Lists the stimuli received by this object Classifier Drop down selector The name of the classifier of which this is an object
202. dia gram Source Standard tab This contains a template for the class declaration and declarations of associated classes Constraints Standard tab There are no standard constraints defined for Class within the UML metamodel Tagged Values Standard tab In the UML metamodel C1ass has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed semantics from the superclass Classifier The value is a specification of the se mantics of the class derived from the superclass ModelElement Values t rue meaning the class is redund ant it can be formally derived from other elements or false meaning it cannot x Note Derived classes still have their value in analysis to introduce useful names or con cepts and in design to avoid re computation E Note Ce i The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for a Classifier 18 5 2 Class Property Toolbar By GO up Navigate up through the package structure 231 Class Diagram Artifact Reference New attribute DL This creates a new attribute see Section 18 6 Attribute within the class navigating immediately to th
203. dialog Printing Selection The diagram exceeds the current page size Select option Fit to page Multiple Pages e Warning If the current diagram contains no selected artifacts then the whole diagram is printed However if one or more artifacts are selected then only the area they cover is printed If scaling is selected by the Fit to page choice in the dialog box descibed above then the scaling is done on basis of the selected artifacts only If scaling is not chosen or in case it is not needed then all pages containing a selected artifact are printed 10 3 11 Export Graphics This menu entry brings up a dialog box allowing the currently selected diagram in the editing pane to be saved in one of a number of graphic formats 89 The Menu bar The dialog box is identical to that for Open Project see Figure 10 2 The file selection dialog for Open Project except forthe Files of type The chosen filetype specifies the graphics format used for saving The filename is automatically extended with the corresponding ending if not entered already A default filename is generated based on the diagram name The available graphics types are e GIF image gif e Encapsulated Postscript file eps PNG image png e Postscript file ps e Scalable Vector Graphics file svg The graphics format that is selected by default is set in the dialog under the menu entry Edit Settings 1
204. dialog for Generate Selected Classes w Generate Classes Available Classes CSharp Java Cop PHP4x PHP Sx Class Name C O 1 Shape MW D EL Point v O Polygon select All select Mone r Output Directory Temp Browse Below a label Available Classes the dialog box lists each of the selected classes by name with a check box to the left for each language installed All the checkboxes are initially unchecked Checking any of these boxes will cause code generation for that class Checking multiple languages for a class causes it to be generated in all these languages 111 The Menu bar The buttons Select A11 and Select None may help when a lot of items have to be selected or deselected In the lower portion of the dialog box is an editable combo box labeled Output Directory to spe cify the directory in which code is generated Within this directory a top level directory will be created with the name of the model Further sub directories will be created to reflect the package namespace hierarchy of the model A drop down selector gives access to previously selected output directories Finally at the bottom of the dialog box are two buttons labeled Generate and Cancel Button 1 click on the former will cause the code to be generated button 1 click on the latter will cancel code gen eration 10 8 2 Generate All Classes Shortcut F7 This function behaves as Generate Selected Classe
205. ding box of the message The Line field defines the arrow color Increasing the Shadow size has an esthetically question 311 Collaboration Diagram Artifact Reference able effect d Caution In the V0 18 release of ArgoUML changing the position of the message by editing the values of the Bounds field is possible but will make only a temporary change to the position of the message as described above Source Standard tab showing the message number and action expression separated by a colon when UML 1 4 is selected in the drop down d Caution A message probably should not generated any code of itself That should be left to the action and possibly stimulus associated with it In any case changes to this tab are ig nored Tagged Values Standard tab In the UML metamodel Message has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the message is re dundant it can be formally derived from other elements or alse meaning it cannot ES Note LI E F Derived messages still have their value in analysis and design to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 21 5 2 Message Property Toolbar By GO up Navigate up through the package struct
206. documentation which is handled by the documentation tab under ArgoUML 18 16 2 Abstraction Property Toolbar By CO up Navigate up through the package structure Tif Delete This deletes the abstraction from the model Warning This is a deletion from the model nof just the diagram To delete an abstraction from the diagram but keep it within the model use the main menu Remove From Dia gram or press the Delete key 18 16 3 Property Fields For Abstraction Name Text box The name of the abstraction There are no constraints on the name of an abstraction which is not shown on any diagram Stereotype Drop down selector Abstraction is provided by default with the UML standard stereotypes de rive realize refine and trace d Caution ArgoUML automatically selects the stereotype realize when an abstraction is created The user is free to change the stereotype to use the abstraction to indicate for example a trace relationship However ArgoUML will not alter the representation on the dia gram accordingly Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows changing the namespace for the abstraction This is the package hierarchy Suppliers Text area Lists the artifact that is the supplier end of this abstraction for a realization this is the end 265 Class Di
207. e Note T Derived actors have limited value since they sit outside the system being de signed They may have their value in analysis to introduce useful names or con cepts Checklist Standard tab for a Classifier 17 2 2 Actor Property Toolbar By CO up Navigate up through the package structure of the model Add Actor This creates a new actor within the model but not within the diagram navigating immediately to the properties tab for that actor Tip This method of creating a new actor may be confusing It is much better to create an actor on the diagram Tif Delete This deletes the selected actor from the model e Warning This is a deletion from the model not just the diagram To delete an actor from the dia gram but keep it within the model use the main menu Remove From Diagram or press the Delete key 17 2 3 Property Fields For Actor Name Text box The name of the actor The diagram shows this name below the stick man figure Since an actor is a classifier it would be conventional to Capitalize the first letter and initial letters of any component words e g RemoteSensor amp Note ArgoUML does not enforce any naming convention for actors Stereotype 208 Use Case Diagram Artifact Reference Drop down selector Actor is provided by default with the UML standard stereotypes meta class powertype process thread utility for classifiers Stereotypes are of limited va
208. e e They allow the participants to experience first hand how the system will work No computer tool can replace the interaction that happens by physically picking up the cards and playing the role of that object e They are a useful tool for teaching people the object oriented paradigm e They can be used as a methodology themselves or as a front end to a more formal methodology such as Booch Wirfs Brock Jacobson etc Although CRC cards were created for teaching they have proven useful for much more e They have become an accepted method for analysis and design The biggest contributing factor to their success is the fact that they provide an informal and non threatening environment that is pro ductive to working and learning G 1 The Card The exact format of the card can be customized to the preferences of the group but the minimal required information is the name of the class it s subclasses and superclasses it s responsibilities and the collab orators for each of those responsibilities The back of the card can be used for a description of the class During the design phase attributes of the class can be recorded on the back as well One way to think of the card is that the front contains the public information and the back contains the encapsulated imple mentation details As a class is defined a card is made for that class with its name entered When a class is assigned to an individual that has only a class name on it the ind
209. e To be written 6 2 Package Diagrams To be written To be written 6 2 1 The Package Diagram To be written To be written 6 2 2 Advanced Package Diagrams To be written To be written 6 2 2 1 Subpackages To be written To be written 6 2 2 2 Adding DataTypes To be written To be written 6 2 2 3 Adding Stereotypes To be written To be written 6 3 Creating Package Diagrams in ArgoUML 6 3 1 Packages How to work out what goes in packages To be written 60 Design 6 3 1 1 Subpackages To be written To be written 6 3 2 Relationships between packages To be written To be written 6 3 2 1 Dependency To be written To be written 6 3 2 2 Generalization To be written To be written 6 3 2 3 Realization and Abstraction To be written To be written 6 3 3 Advanced Package Features To be written To be written 6 3 3 1 Creating New Datatypes To be written To be written 6 3 3 2 Creating New Stereotypes To be written To be written 6 4 More on Class Diagrams To be written To be written 6 4 1 The Class Diagram To be written To be written 6 4 1 1 Class Attributes To be written To be written 6 4 1 2 Class Operations To be written To be written 6 4 2 Advanced Class Diagrams To be written To be written 6 4 2 1 Realization and Abstraction To be written To be
210. e ArgoUML search engine Figure 10 20 The dialog for Find 103 The Menu bar Name and Location Last Modifiec agged values Constraints Element Name UML Element Type Any Type In Diagram Find In Entire Project Help UML in Results 3 items Type Name In Diagram Description org argouml cognitive critics For criticsrelating to UMLissues jora argouml cognitive critics For general criticsrelating to Arg org argouml cognitive critics Name In Diagram Description predicate2 N A docs IsetResource N A docs At the top the dialog box has four tabs labeled Name and Location Last Modified Tagged Values and Constraints Of these all but the first are grayed out in the V0 22 version of ArgoUML because they are not imlemented yet so the first tab is always selected The Name and Location specifies the search to be made It contains the following A text box labeled Element Name specifies the name of the element or artifact to search for Wild cards may be used here A drop down gives access to find expressions previously used A text box labeled In Diagram specifies which diagrams are to be searched Again wild cards may be used Both these two text boxes have a default entry of i e match anything To the right of these two text boxes a selector labeled Element Type allows you to specify the UML metaclass for which you are se
211. e Folder drop down control CI ineps w Clicking on the down arrow displays a tree view of the folder hierarchy allowing you to navigate quickly up the hierarchy and at the same time to quickly determine where in the hierarchy we are currently positioned E The Folder Up icon Clicking on this icon will bring us to the parent folder of the current folder el The Home Folder icon Clicking on this icon will bring us to our home directory fat al The New Folder icon Clicking on this icon will create a new folder called New Folder un der the current folder After the folder is created selecting it an clicking in the name allows us to se lect the name of our choice z The Folders Presentation Icon Lr 0 0 0 OK now we navigate to the directory where we want to save our ArgoUML project fill in the File name with an appropriate name such as FirstProject and click on the Save button You have now an active project called FirstProject connected to the file FirstPro ject zargo 3 4 3 Output 3 4 3 1 Loading and Saving 3 4 3 1 1 Saving XMI files in ArgoUML ArgoUML saves the diagram information in a PGML file with extension pgm1 the model informa tion in an XMI file with extension xmi and information about the project in a file with extension argo See Section 3 4 3 22 Precision Graphics Markup Language PGML and Section 3 4 3 3 XMP for more about PGML and XMI respectively All
212. e a include from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 17 10 3 Property Fields For Include Name Text box The name of the include relationship ZR Tip It is quite common to leave include relationships unnamed in use case analysis Note ArgoUML does not enforce any naming convention for include relationships Stereotype Drop down selector ArgoUML does not provide any stereotypes for include relationships T Tip Stereotyping does not have great value on an include relationship or Note There is no representation of the stereotype of an include relationship on the diagram Navigate Stereotype 4 icon If a stereotype has been selected this will navigate to the stereotype property panel see 224 Use Case Diagram Artifact Reference Section 16 5 Stereotype Namespace Text box Records the namespace for the include This is the package hierarchy Button 1 click on the entry will navigate to the package defining this namespace or the model for the top level namespace Base Use Case Drop down selector Records the use case that is doing the including in this include relationship Button 1 click on this entry will give a drop down menu of all available use cases which may be se lected by button 1 click Included Use Case Drop down selector Records the use case that is being included by this include relationship But ton 1 cl
213. e button above a namespace makes the modelelement owned by the namespace In the Package centric explorer perspective this means a straigh forward drag and drop function Use this drap and drop feature to easily move e g classes from one package into another 11 2 3 2 From Explorer to Diagram Dropping a modelelement on the diagram is the equivalent of the Add to Diagram function Hence if the diagram did not yet show this modelelement it is added Use this drap and drop feature e g to easily create a diagram from imported XMI files This because XMI files contain all the modelelements but not any diagram information 11 2 4 Button 2 Actions When used in the the explorer this will display a selection dependent pop up menu Menu entries are highlighted but not selected and sub menus exposed by subsequent mouse motion without any but tons Menu entry selection is with button 1 or button 2 11 2 5 Button 2 Double Click 122 11 3 11 4 The Explorer This has no effect other than that of button 2 single click Keyboard Behavior in the Explorer All keys active in a tree widget have their normal behaviour When a diagram is selected pressing Ctrl C will copy the diagram in GIF format to the system clip board Perspective Selection The artifacts in the ArgoUML model may be configured for displaying in the tree by a number of per spectives To this end a drop down at the top allows selection of the exp
214. e headline name of the critic the third indicates if the critic has been snoozed from the to do pane see Chapter 14 The To Do Pane A critic is only really active if the box in the first column is checked and the critic has not been snoozed Any critic for which the box in the first column is unchecked is inactive and will not trigger In addition any to do items associated with that critic will be removed from the to do pane 115 The Menu bar The V0 20 version of ArgoUML has a total of 90 critics a few of which are incompletely implemented They are described in detail by design issue category in the chapter on critics see Chapter 15 The Crit ics To the right of the list are a series of fields titled Critic Details giving detailed control over indi vidual critics Selecting a critic in the list on the left will populate the fields for that critic The first field on the right is titled Critic Class and then the full name of the class in ArgoUML that implements the critic This name can be used as unique identifier of the critique e g in conversa tions about the critic The first field below this title is a text box labeled Headline giving the complete headline of the crit ic which may be truncated in the list on the left an Note ce a In the headline you may see the text lt ocl gt self lt ocl1 gt which will be replaced by the name of the artifact in question when the critic is triggered The next field is
215. e not moved I E The others are adjusted vertically until the vertical space i e from the bottom edge of the top artifact to the top edge of the bottom artifact is the same for all of the selected items I Distribute Vertical Centers The top and bottom selected artifacts are not moved E The others are adjusted vertically until the distance between the vertical centers of all the selected items is the same Reorder 109 The Menu bar This sub menu adjusts the ordering of overlapping items There are four reorder options provided L Forward The selected artifacts are moved one step forward in the ordering hierarchy with re spect to other artifacts they overlap Backward The selected artifacts are moved one step back in the ordering hierarchy with re spect to other artifacts they overlap p To Front The selected artifacts are moved to the front of any other artifacts they overlap g To Back The selected artifacts are moved to the back of any other artifacts they overlap 10 7 4 Nudge This sub menu provides fine adjustment to the positioning of selected artifacts There are four nudge op tions provided 4H Nudge Left The selected artifacts are moved one pixel to the left D Nudge Right The selected artifacts are moved one pixel to the right Nudge Up The selected artifacts are moved up one pixel Nudge Down The selected artifacts are moved up one pixel 40 Or 10 7 5 Se
216. e operations from one class to another in the class diagram ArgoUML currently does not support this for any language 72 Part 2 User Interface Reference Chapter 8 Introduction This chapter describes the overall behavior of the user interface Description of the various component parts the menu bar panes and various diagrams is in separate chapters 8 1 Overview of the Window Figure 8 1 Overview of the ArgoUML window shows the main ArgoUML window The titlebar of the window shows the following 4 parts of information separated from each other by a dash e The current filename If no filename for the project is set yet then the titlebar shows Unititled The name of the currently active diagram The name ArgoUML e An asterisk This item is only present if the current project file is dirty i e it is altered but not yet saved In other words if the asterisk is absent then the current file has not been altered Figure 8 1 Overview of the ArgoUML window w critic model zargo org argouml cognitive critics ArgoUML File Edit View Create Arrange Generation Critique Tools Help BeBB XB569 2 M 4 E Package centric v k 4 EEB 1 B 7 BBFB O7 Order By Type Name rw i A newOperation void w j CrConstructorNeeded E CrSingletonviolated E CrSingleton Violated E predicate2 s EJ crum ES na For critics built CompoundCiitic Critic
217. e prioritization here Constraints A high level view of the non functional parameters of the system These will be worked out in detail in the supplementary requirements specification e Appendix A listing of the actors and use cases that will be needed to meet this vision It is useful to link to these from the earlier sections to ensure comprehensive coverage Use Case Diagram The vision document has identified the use cases and actors The use case diagram captures how they in teract In our ATM example we have identified customer uses machine maintain machine and audit as the three main use cases We have identified customer maintenance engineer local branch official and central computer as the actors Figure 4 1 Basic use case diagram for an ATM system shows how this could be displayed on a use case diagram The use cases are shown as ovals the actors as stick people even where they are ma chines with lines known as associations connecting use cases to the actors who are involved with them A box around the use cases emphasizes the boundary between the system defined by the use cases and the actors who are external Note Not all analysts like to use a box around the use cases It is a matter of personal choice Figure 4 1 Basic use case diagram for an ATM system 35 Requirements Capture Maintain ATM Bank Engineer Customer Local Bank Official Central Computer The
218. e properties tab for that attribute New operation This creates a new operation see Section 18 7 Operation within the class navigating immedi ately to the properties tab for that operation New reception c p This creates a new reception navigating immediately to the properties tab for that reception This creates a new inner class which appears on no diagram within the class This belongs to the class and is restricted to the namespace of the class It exactly models the Java concept of inner class As an inner class it needs no attributes or operations since it shares those of its owner gt Note Inner class is not a separate concept in UML This is a convenient shorthand for creat ing a class that is restricted to the namespace of its owning class B New class This creates a new class which appears on no diagram within the same namespace as the current class PE w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected class navigating im mediately to the properties tab for that stereotype Tif Delete This deletes the class from the model a Warning This is a deletion from the model not just the diagram To delete a class from the dia gram but keep it within the model use the main menu Remove From Diagram or press the Delete key 18 5 3 Property Fields For Class Name Text box The name of the class The name of a class has a leading capital
219. e section on class diagram artifacts see Chapter 18 Class Diagram Artifact Reference Package Add a package to the diagram E Class Add a class to the diagram For convenience when the mouse is over a selected class it displays two handles to left and right which may be clicked or dragged to form association relation ships or composition in case SHIFT has been pressed and two handles top and bottom which may be dragged or clicked to form generalization and specialization relationships respectively Association Add an association between two artifacts selected using button 1 motion from the first artifact to the second There are 2 types of association offered here bidirec tional or unidirectional e a Composition Add an composition between two artifacts selected using button 1 motion from the first artifact to the second There are 2 types of composition offered here bidirec tional or unidirectional e g Aggregation Add an aggregation between two artifacts selected using button 1 motion from the first artifact to the second There are 2 types of aggregation offered here bidirec 134 The Editing Pane tional or unidirectional Generalization Add a generalization between two artifacts selected using button 1 from the child to the parent EH Interface Add an interface to the diagram For convenience when the mouse is over a se lected interface it displays a handle at the botto
220. ected is not at the bottom It is moved down one d Caution ArgoUML does not actually have a separate concept of a literal The navigations listed above will all navigate to a property sheet equal to an attribute of a class see Sec tion 18 6 Attribute When defining a literal all that matters is its name Other parts of the attribute property sheet should be ignored 16 4 Enumeration Enumeration can be thought of as simple classes They have no attributes and any operations on them must have no side effects A useful analogy is primitive datatypes in a language like Java The boolean true stands on its own it has no inner structure There are operations for example logical xor on the booleans but when I perform true xor true the result is a new boolean and the original 2 booleans true are unchanged by the exercise Within UML 1 4 Enumeration is a sub class of the DataType metaclass 197 Top Level Artifact Reference The big difference with other DataTypes is that an Enumeration has EnumerationLiterals E g the Enumeration boolean is defined as having 2 EnumerationLiterals true and false Within ArgoUML new enumerations may be created using the New Enumeration button on the property tabs of the model and packages in which case the new enumeration is restricted in scope to the package as well as the properties tab for datatype and enumeration g Note UML 1 4 allows user
221. ed semantics from the superclass Classifier The value is a specification of the se mantics of the node derived from the superclass ModelElement Values t rue meaning the node is redund ant it can be formally derived from other elements or false meaning it cannot ae Note E Derived nodes still have their value in analysis to introduce useful names or con cepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 23 2 2 Node Property Toolbar By GO up Navigate up through the package structure New reception 323 Deployment Diagram Artifact Reference This creates a new reception navigating immediately to the properties tab for that reception gs w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected node navigating im mediately to the properties tab for that stereotype Tif Delete This deletes the node from the model e Warning This is a deletion from the model not just the diagram To delete a node from the dia gram but keep it within the model use the main menu Remove From Diagram or press the Delete key 23 2 3 Property Fields For Node Name Text box The name of the node The name of a node has a leading capital letter with words separ ated by bumpy caps
222. ee Section 15 5 3 Add a Constructor to a Class 15 8 2 Singleton Stereotype Violated in lt class gt 180 The Critics This class is marked with the singleton stereotype but it does not satisfy the constraints imposed on singletons ArgoUML will also accept Singleton stereotype as defining a singleton A singleton class can have at most one instance This means that the class must meet the design criteria for a singleton see Section 15 8 1 Consider using Singleton Pattern for lt class gt Whenever you mark a class with a stereotype the class should satisfy all constraints of the stereotype This is an important part of making a self consistent and understangle design Using the singleton pat tern can save time and memory space If you no longer want this class to be a singleton remove the singleton stereotype by clicking on the class and selecting the blank selection on the stereotype drop down within the properties tab To apply the singleton pattern you should follow the directions in Section 15 8 1 Consider using Singleton Pattern for lt class gt 15 8 3 Nodes normally have no enclosers A suggestion that nodes should not be drawn inside other artifacts on the deployment diagram since they represent an autonomous physical object 15 8 4 Nodelnstances normally have no enclosers A suggestion that node instances should not be drawn inside other artifacts on the deployment diagram
223. ee Section 16 3 Datatype in the namespace of the owner of the operation of the parameter navigating immediately to the properties tab for that datatype gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected parameter navigat ing immediately to the properties tab for that stereotype Tif Delete This deletes the parameter from the model e Warning This is a deletion from the model not just the diagram If desired the whole operation compartment can be hidden on the diagram using the presentation tab or the button 2 pop up menu for the class on the diagram 244 Class Diagram Artifact Reference 18 8 3 Property Fields For Parameter Name Text box The name of the parameter By convention the name of a parameter has a leading lower case letter with words separated by bumpy caps GP Note The ArgoUML critics do not complain about parameter names that do not have an ini tial lower case letter Stereotype Drop down selector There are no UML standard stereotypes for Parameter Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Owner Text box Records the operation which contains this parameter Button 1 double click on the entry will navigate to the operation Type Drop down selector The type of this parameter This can be any UML Classifier although in
224. eeenes 318 22 3 GA WM ete oocah oh eet uine dees ds dene E EEEE TES ES lesions 319 224 l ransition 5i corio ee Re US IBERIA 319 22 5 Guard oss Sasee vhs Se E E tet owes owe hot eeu etiim EEE eon 319 22 6 Initial State oes e Ae eS CREW ree SN UE ee 319 221 Final State eee ettet Ree Dre br esce het ueteres CHR Reb r Suse sete 319 22 8 J nction Decision oed e IDE be qe TiO 319 PA Mig qM ULM 319 22 10 Join i ien RESO 320 22 11 ObjectFlowState rtr imet rrt reme SES RE IR rire TRESSES 320 23 Deployment Diagram Artifact Reference sse 321 23 3 Introduction c rS EHE ERE DIRE ERR 321 23 1 1 Limitations Concerning Deployment Diagrams in ArgoUML 322 23 2 NO0de oer etr rre PED erret RES 322 23 2 1 Node Details Tabs i e t dedecore ee 322 23 2 2 Node Property Toolbar sseeeHH 323 23 2 3 Property Fields For Node esses 324 23 3 Node Instance 2 23 e OE EU eet pe ERR en 325 23 3 1 Node Instance Details Tabs se 325 23 3 2 Node Instance Property Toolbar eeee 326 23 3 3 Property Fields For Node Instance eeeeeeeeee 326 23 4 COMPONENT ian cte teer reset ahs st te E Sh eere SE SERE E Ne Ese TES Reb eA 327 23 4 1 Component Details Tabs sse 327 23 4 2 Component Property Toolbar eee 328 23 4 3 Property Fields For Component es 328 23 5 Component In
225. eiving the stimulus Stimulus Create Generated by a create action for the class for which an instance is to be cre ated Shown as a solid line with a solid arrowhead to the object head of the object instance being cre ated Stimulus Destroy Generated by a destroy action of the originating object Shown as a solid line with an open arrowhead terminating in a diagonal cross at the end of the time line of the receiv ing destroyed object instance Stimulus Send Generated by a send action the result of a signal raised by an operation of the sending object instance and handled by the receiving object instance Shown as a solid line with half an open arrowhead Stimulus Return Generated by an object instance that has received an earlier call stimulus and is returning a result to the calling object instance Shown as a dotted line with an open arrowhead 7 Note Lg ArgoUML does not allow you to create stimuli directly but instead provides tools to create stimuli of each of the five types above d Caution In the current release of ArgoUML there is no way to show a terminate action where an object instance destroys itself One way is to draw a destroy action that loops back to the object itself give it an action with no name and use the style tab to set an invisible line but this still leaves the arrow head showing which is unsightly It is also semantically incor rect anyway to use a destroy action to represent a terminate
226. elected classifier role navig ating immediately to the properties tab for that stereotype Tif Delete This deletes the classifier role from the model a Warning This is a deletion from the model not just the diagram To delete an classifier role from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 21 2 3 Property Fields For Classifier Role Name Text box The name of the classifier role By convention classifier role names start with a lower case letter and use bumpy caps to divide words within the name ce Note 303 Collaboration Diagram Artifact Reference ArgoUML does not enforce this naming convention Stereotype Drop down selector Classifier Role is provided by default with the UML standard stereotypes for a classifier metaclass powertype process thread and utility Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text box Records the namespace for the classifier role which is always the containing Collabora tion Button 1 double click on the entry will navigate to the collaboration Multiplicity Editable drop down selector The default value is which means that there are any number of in stances of this classifierrole that play a role in the collaboration The drop down provides some dif ferent multiplicities E g 1
227. en cccececeeceeeeceeeeeeens 55 5 4 Sequence Diagrams To be written ssssse cena sean eene eens 55 5 4 1 The Sequence Diagram To be written esses 56 5 4 2 Identifying Actions To be written eee 56 5 4 3 Advanced Sequence Diagrams To be written sess 56 5 5 Creating Sequence Diagrams in ArgoUML see 56 23 5 I Sequence Diagrams 5x 5 p Dee terres 56 5 5 2 Actions To be written sss eene 56 5 5 3 Advanced Sequence Diagrams To be written sess 56 5 6 Statechart Diagrams To be written sees 56 5 6 1 The Statechart Diagram To be written sees 56 5 6 2 Advanced Statechart Diagrams To be written ssussss 56 5 7 Creating Statechart Diagrams in ArgoUML sse 56 5 7 1 Statechart Diagrams To be written eene 56 5 7 2 States To be written sse mener 56 5 7 3 Transitions To be written sss 57 5 7 4 Actions To be written sss emen ene 57 5 7 5 Advanced Statechart Diagrams To be written s usse 57 5 8 Realization Use Cases To be written ssssssssse n 57 5 9 Creating Realization Use Cases in ArgoUML To be written 57 9 10 Case Study To be wrtten acs sieut ette et eroe orte Ente Lee ee oe
228. ence statechart diagram Chapter 20 Statechart Diagram Artifact Reference collaboration diagram Chapter 21 Collaboration Diagram Artifact Reference activity diagram Chapter 22 Activity Diagram Artifact Reference deployment diagram Chapter 23 Deployment Diagram Artifact Reference Property sheets for artifacts that are common to all diagram types have their own chapter Chapter 16 Top Level Artifact Reference qd Caution ArgoUML will always try to squeeze all fields on to the property sheet If the size of the property tab is too small it may become unusable The solution is to either enlarge the property tab by enlarging the main window or by moving the dividers to left and top 13 4 Documentation Tab Within the UML 1 4 standard all artifacts are children of the Element metaclass The Element metaclass defines a tagged value documentation for comment description or explanation of the ele ment to which it is attached Since this tagged value applies to every artifact it is given its own tab in the details pane rather than being part of the Tagged Values tab Figure 13 7 A typical Documentation tab on the details pane shows a typical documentation tab for an artifact in ArgoUML Figure 13 7 A typical Documentation tab on the details pane 4 4 ToDo item Properties 4 Documentation 4 Presentation amp Source Constraints Tagged Values amp Checklist Documentation _ Documentation
229. ent 33 34 34 347 Case Study 49 W W3C 347 Waterfall Design Process 348 X XMI xvii 14 26 27 28 348 XML xvii xviii 348 368
230. ent diagram is used for both component diagrams i e without instances showing static dependencies of components and deployment diagrams showing how instances of com ponents are handled by instances of nodes at run time d Caution Deployment diagrams are not fully developed yet in ArgoUML Some aspects are not fully implemented or may not behave as expected Notable omissions are the possibility to draw new interfaces and proper stereotyping of the various dependency relationships Figure 23 1 Possible artifacts on a component diagram shows a component diagram with all possible artifacts displayed Figure 23 1 Possible artifacts on a component diagram Example Library x x Inte rface gt gt Example Inte rface Figure 23 2 Possible artifacts on a deployment diagram shows a deployment diagram with all pos sible artifacts displayed 321 Deployment Diagram Artifact Reference Figure 23 2 Possible artifacts on a deployment diagram ce ntralLib Example Library 23 1 1 Limitations Concerning Deployment Diagrams in ArgoUML The deployment diagram is generally well drawn but there are only a subset of the relationships that should be shown available which restricts the ability to show dynamic behavior of deployed code It is not possible to create new interfaces directly on this diagram they can only be added if they are first created in the model by drawing them on a class diagram It is an i
231. ented on a statechart diagram in ArgoUML as a rectangle with rounded corners with a horizontal line separating the name at the top from the description of the behavior below The descrip tion of the behavior includes the entry and exit actions and any internal transitions 20 2 1 State Details Tabs The details tabs that are active for states are as follows ToDoItem Standard tab Properties See Section 20 2 2 State Property Toolbar and Section 20 2 3 Property Fields For State below Documentation Standard tab Presentation Standard tab The values for the bounds of the state define the bounding box of the state 279 Statechart Diagram Artifact Reference Stereotype Standard tab Tagged Values Standard tab 20 2 2 State Property Toolbar Go up Navigate up through the package structure gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected state navigating im mediately to the properties tab for that stereotype Tif Delete This deletes the state from the model Note This is a deletion from the model not just the diagram You can not just remove a state from the diagram and keep it within the model as is possible in other diagrams 20 2 3 Property Fields For State Name Text box The name of the state By convention state names start with a lower case letter and use bumpy caps to divide words within the name gt Note ArgoUML
232. enting a source for a single transition to the default state of a composite state It is the state from which any initial transition is made As a consequence it is not permissible to have incoming transitions ArgoUML will not let you create such transitions and if you import a model that has such transitions a critic will complain There can be at most one initial pseudostate in a composite state which must have at most one outgo ing transition An initial state is represented on the diagram as a solid disc 20 13 Final State If a transition reaches a final state it implies completion of the activity associated with that composite state or at the top level of the complete state machine In the UML metamodel FinalState is a child of State Note A final state is a true state with all its attributes not a pseudostate Completion at the top level implies termination i e destruction of the owning object instance The representation of a final state on the diagram is a circle with a small disc at its center 20 13 1 Final State Details Tabs The details tabs that are active for final states are as follows ToDoItem Standard tab Properties See Section 20 13 2 Final State Property Toolbar and Section 20 13 3 Property Fields For Final State below Documentation Standard tab Presentation Standard tab Stereotype Standard tab containing the stereotypes of the final state In the UML metamodel a
233. ents describing UML v0 9 and v0 91 during 1996 The effort was taken industry wide through the Object Management Group OMG already well known for the CORBA standard A first proposal 1 0 was published in early 1997 with an improved version 1 1 approved that autumn ArgoUML is based on UML v1 4 which was adopted by OMG in March 2000 The current official ver sion is UML v1 5 dated March 2003 soon to be replaced by a major revision UML v2 0 which is in the final stages of standardization and is expected to be complete in 2006 3 2 UML Based Processes for OOA amp D It is important to understand that UML is a notation for OOA amp D It does not prescribe any particular process Whatever process is adopted it must take the system being constructed through a number of phases 1 Requirements Capture This is where we identify the requirements for the system using the lan guage of the problem domain In other words we describe the problem in the customer s terms 2 Analysis We take the requirements and start to recast them in the language of a putative solu tion the solution domain At this stage although thinking in terms of a solution we ensure we keep things at a high level away from concrete details of a specific solution what is known as ab UML Based OOA amp D straction 3 Design We take the specification from the Analysis phase and construct the solution in full detail We are moving from abstraction of
234. er reines 49 4 5 2 Identifying Actors and Use Cases ss teen seen sean eenes 51 4 5 3 Associations To be written ssssssssssssseee me ee 51 iv ArgoUML User Manual 4 5 4 Advanced Diagram Features To be written seessssse 52 4 5 5 Use Case Specifications To be written cceeceeeceeeeeeeee esse es 52 4 5 6 Supplementary Requirements Specification To be written 52 DP ANALYSIS ET 53 XL The Analysis Process eiie tee eere tees eases saree eer aee Sod Dove 53 5 1 1 Class Responsibilities and Collaborators CRC Cards 53 5 1 2 Concept Diagram To be written e 54 5 1 3 System Sequence Diagram To be written eese 54 5 1 4 System Statechart Diagram To be written esee 54 5 1 5 Realization Use Case Diagram To be written sssussss 54 5 1 6 Documents To be written sssssssssseee 54 5 2 Class Diagrams To be written sess meme 54 5 2 1 The Class Diagram To be written eeee 54 5 2 2 Advanced Class Diagrams To be written eese 54 5 3 Creating Class Diagrams in ArgoUML see 55 Dy Sed CLASSES ERR 55 5 3 2 Associations To be written 55 5 3 3 Class Attributes and Operations To be written esses 55 5 3 4 Advanced Class Features To be writt
235. eralizations Text area Lists any stereotype that generalizes this stereotype d Caution It is not clear that generalizing stereotypes makes much sense Specializations Text box Lists any specialized stereotype i e for which this stereotype is a generalization d Caution It is not clear that specializing stereotypes makes much sense 16 6 Diagram The UML standard specifies eight principal diagrams all of which are supported by ArgoUML Use case diagram Used to capture and analyse the requirements for any OOA amp D project See Chapter 17 Use Case Diagram Artifact Reference for details of the ArgoUML use case diagram and the artifacts it supports Class diagram This diagram captures the static structure of the system being designed showing the classes interfaces and datatypes and how they are related Variants of this diagram are used to show package structures within a system the package diagram and the relationships between particular instances the object diagram The ArgoUML class diagram provides support for class and package diagrams See Chapter 18 Class Diagram Artifact Reference for details of the artifacts it supports The object diagram is supor ted on the Deployment diagram 203 Top Level Artifact Reference e Behavior diagrams There are four such diagrams or strictly speaking five since the use case dia gram is a type of behavior diagram which show the dynamic behavior of the system a
236. ereotype for the selected generalization nav igating immediately to the properties tab for that generalization Tif Delete This deletes the selected generalization from the model a Warning This is a deletion from the model rof just the diagram To delete a generalization from the diagram but keep it within the model use the main menu Remove From Dia gram or press the Delete key 17 8 3 Property Fields For Generalization Name Text box The name of the generalization Tip It is quite common to leave generalizations unnamed in use case analysis Note ArgoUML does not enforce any naming convention for associations m Note CE There is no representation of the name of a generalization on the diagram Stereotype 217 Use Case Diagram Artifact Reference Drop down selector Generalization is provided by default with the UML standard stereotype im plementation The stereotype is shown between and above or across the generalization Tip Stereotyping generalization does not have great value on a use case diagram The standard stereotype is about implementation and suited to the use of generalization on class diagrams Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Discriminator Text box The name of a discriminator for the specialization UML 1 3 allows grouping of specializ ations i
237. erfaces For details see Section 18 15 Interface Caution The V0 18 release of ArgoUML uses the same representation of an interface as a class dia gram The UML standard suggests that an interface on a component or deployment dia gram should just be shown as a small open circle connected to the component which real izes that interface Warning There is no way to show the linking of an interface to a component or component instance in the V0 18 release of ArgoUML 23 9 Association Components may be associated to each other For details about associations see Section 18 11 Association Where classes or interfaces are shown within components on component diagrams they may be shown 332 Deployment Diagram Artifact Reference linked by associations 23 10 Object Just as components may show the classifiers that make up their internal structure component instances on deployment diagrams may show the classifier instances that make up their internal structure In prac tice the only instance that is of use is an object an instance of a class For details see Section 19 2 Object 23 11 Link Where objects Node Instances or Class Instances are shown within component instances on deploy ment diagrams their inter relationships may be shown as links instances of an association See Sec tion 19 9 Link for details 333 Chapter 24 Built In DataTypes Classes Interfaces an
238. es New Add a new Entry action of a certain kind This menu has the following 7 submenus to se lect the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action e Delete From Model Delete the Entry Action 295 Statechart Diagram Artifact Reference Incoming Text area Lists any incoming transitions for the final state Button 1 double click navigates to the selected transition Internal Transitions Text area Lists all the internal transitions of the state Such transitions neither exit nor enter the state so they do not cause a state change Which means that the Entry and Exit actions are not in voked Button 1 double click navigates to the selected transition 20 14 Junction Junction is a pseudostate see Section 20 11 Pseudostate which is used to split an incoming transition into multiple outgoing transition segments with different guard conditions A Junction is also called a Merge or Static conditional branch The chosen transition is that whose guard is true at the time of the transition A predefined guard denoted e1se may be defined for at most one outgoing transition This transition is enabled if all the guards labeling the other transitions are false According the UML standard its symbol is a small black circle Alternatively it may be represented by a diamond shape in case of Decision for Activity diagrams ArgoUML o
239. es in ArgoUML The current version of ArgoUML has no critics in this category 15 16 Inheritance 185 The Critics Critics concerning generalization and specialization in ArgoUML The current version of ArgoUML has the following critics in this category 15 16 1 Revise Attribute Names to Avoid Conflict This critic is discussed under an earlier design issues category see Section 15 4 2 Revise Attribute Names to Avoid Conflict 15 16 2 Remove class s Circular Inheritance Suggestion that a class inherits from itself through a chain of generalizations which is not permitted D Caution This critic is marked inactive by default in the current release of ArgoUML the only one so marked It will not trigger unless made active 15 16 3 Class Must be Abstract This critic is discussed under an earlier design issues category see Section 15 13 2 Class Must be Ab stract 15 16 4 Remove final keyword or remove subclasses Suggestion that a class that is final has specializations which is not permitted in UML 15 16 5 Illegal Generalization Suggestion that there is a generalization between artifacts of different UML metaclasses which is not permitted D Caution It is not clear that such a generalization can be created within ArgoUML It probably indic ates that the diagram was created by loading a corrupt project with an XMI file describing such a generalization possibly created by a t
240. es such as Visual Basic and Java reflect the effectiveness of this approach The Development of ArgoUML During the 1980 s a number of OOA amp D process methodologies and notations were developed by differ ent research teams It became clear there were many common themes and during the 1990 s a unified approach for OOA amp D notation was developed under the auspices of the Object Management Group http www omg org This standard became known as the Unified Modeling Language UML and is now the standard language for communicating OO concepts ArgoUML was conceived as a tool and environment for use in the analysis and design of object oriented software systems In this sense it is similar to many of the commercial CASE tools that are sold as tools for modeling software systems ArgoUML has a number of very important distinctions from many of these tools 1 ArgoUML draws on research in cognitive psychology to provide novel features that increase pro ductivity by supporting the cognitive needs of object oriented software designers and architects 2 ArgoUML supports open standards extensively UML XMI SVG OCL and others 3 ArgoUML is a 100 pure Java application This allows ArgoUML to run on all platforms for which a reliable port of the Java2 platform is available 4 ArgoUML is an open source project The availability of the source ensures that a new generation of software designers and researchers now have a proven framework from
241. esenting a return value whose type only is shown at the end of the operation declaration 18 8 1 Parameter Details Tabs The details tabs that are active for parameters are as follows ToDoItem Standard tab Properties See Section 18 8 2 Parameter Property Toolbar and Section 18 8 3 Property Fields For Para meter below Documentation Standard tab See Section 13 4 Documentation Tab Source Standard tab This contains a declaration for the parameter Tagged Values 243 Class Diagram Artifact Reference Standard tab In the UML metamodel Parameter has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the parameter is re dundant it can be formally derived from other elements or false meaning it cannot Caution A derived parameter is a meaningless concept Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 18 8 2 Parameter Property Toolbar By GO up Navigate up through the package structure CT New parameter This creates a new parameter for the for the same operation as the current parameter navigating im mediately to the properties tab for that parameter oh Tip This is a convenient way to add a series of parameters for the same operation a New Datatype This creates a new Datatype s
242. esign Goals Unspecified ArgoUML has the concept that the designer will have a number of design goals to be achieved for ex ample good structural representation detailed behavioral representation etc Critics are associated with one or more goals This dialog allows the user to specify the priority of each design goal The sliders may be set for each design goal to control the critics that trigger for that goal Setting a slider 114 The Menu bar to zero will disable all critics in that goal and remove all associated to do items from the to do pane Setting a slider to a higher value will enable all critics at or above that priority level within the design is sue category 1 being the highest priority and 5 the lowest Tip It may be useful to think of this function as very similar to Design Issues see Section 10 9 2 Design Issues but with grouping of critics according to the outcomes of OOA amp D rather than grouping according to the structure of UML e Warning The V0 20 version of ArgoUML provides a single design goal Unspecified with its slider set by default to priority 1 However it contains no critics and so has no effect 10 9 4 Browse Critics This menu entry brings up a dialog box controlling the individual critics see Figure 10 24 The dialog forBrowse Critics Figure 10 24 The dialog for Browse Critics Critics Critic Details Active Headline Snoozed Cri
243. eted languages tend to be slower than compiled languages However with the high performance of modern PCs the trade off for portability is worthwhile for many applications Furthermore modern multi level caches can mean that interpreted languages which produce denser code may actually not be that much slower anyway By choosing to write ArgoUML in pure Java it is immediately made available to the maximum number of users with the minimum amount of effort Open Source ArgoUML is an open source project That means anyone can have a free copy of the source code change it use it for new purposes and so on The only major obligation is that you pass your code on in the same way to others The precise nature of what you can and can t do varies from project to project but the principle is the same The advantage is that a small project like ArgoUML suddenly is open to a lot of additional help from those who can chip in their ideas for how the program might be improved At any one time their may be 10 15 20 or more people making significant contributions to ArgoUML To do that commercially would cost 1m per year Its not just a spirit of pure altruism Contributing is a way of learning hands on about leading edge software Its a way of getting a lot of visibility over 100 000 people had downloaded ArgoUML by the spring of 2001 That s a lot of good experience on a resum and a lot of potential employers seeing you And its great for
244. every change the best possible perspective is called Round trip Engineering 7 2 Code Generation 7 2 1 The output of the Code Generation is the completed program Depending on the contents of the design we could also generate Unit test cases To do the work we need the design model containing both static and dynamic descriptions of the pro gram Generating Code from the Static Structure It is rather straightforward to do this generation at least as long as we do it for an object oriented lan guage This is some of the basic rules Aclass will become a class In some target languages like java c they also become files and compilation units e A generalization will become an inheritance If the target language does not support inheritance and we didn t address this during the design some special conversions are required to solve this 70 Code Generation Reverse Engineering and Round Trip Engineering An attribute will become a member variable A navigable association will become a member variable Depending on the target language target platform and the association multiplicities this will be a pointer a reference a collection class an entry in some table or map A non abstract operation in a class will become a method An abstract operation in a class will become an abstract method An in parameter in an operation will become a parameter in the method For simple types int boolean this is the n
245. ext Here button 1 double click is used to select a complete word or other syntactic unit within the text Sub sequent operations text entry and deletion will replace the selected text 8 2 4 Button 1 Motion 8 2 4 1 General Behavior When Editing Text Here button 1 motion is used to select a range of text Subsequent operations text entry and deletion will replace the selected text 8 2 5 Shift and Ctrl modifiers with Button 1 8 2 5 1 Within Lists This behavior applies where there is a list of things that may be selected This includes various dialog boxes and the to do pane where there is a list of to do items to be selected Where selections are to be made the SHIFT key is used to with button 1 to extend from the original but ton 1 selection to the current position Similarly the CTRL key with button 1 is used to add individual items to the current selection Where 76 Introduction Ctrl button 1 is used on an item already selected that item is removed from the selection d Caution Users of Microsoft Windows might be familiar with the use of SHIFT CTRL Click i e holding both the Shift and Ctrl key down when clicking to add sub lists to an existing se lection ArgoUML does not support this SHIFT CTRL Click will behave as CTRL Click 8 2 5 2 General Behavior When Editing Text In a number of places in ArgoUML text may be directly edited for example when naming a mod el element in the properties pane
246. ext to the All Files file filter there is the default filter Java Source File java The first of the two tabs is labeled General and is selected by button 1 click on its tab It provides a combo box for the language selection in V0 18 of ArgoUML only Java can be chosen and the follow ing selections Descend directories recursively If enabled the default reverse engineering will track through sub directories for any further Java files If not it will restrict to the selected directory e Changed new files only If enabled the default only changed and new files are imported If not all classes will be replaced Create diagrams from imported code If you unselect this then no diagrams are cre ated i e all data will only be visible in the explorer e Minimise Class icons in diagrams If enabled then the attributes and operations com partiments will not be shown in the classes on the generated class diagrams Note This item is checked by default and is overseen by many users which are then surprised by the result e Perform Automatic Diagram Layout If selected then ArgoUML will do its best to layout the generated diagrams automatically If not then all items will be placed at the top left corner of the diagram Level of import detail Classifiers only Classifiers plus feature specifications Full import The latter is the default Import source file encoding The value Cp1252 is often the default
247. f Stereotype 202 of Use Case 212 Navigation Pane 121 Setting 46 Tree 121 Navigator Pane 121 Tree 121 New 83 New Action 312 New Actor 208 New DataType 191 New Datatype 228 236 240 244 New Enumeration 191 New Extend Relationship 221 New Extension Point 211 214 New Package 191 New Qualifier 254 310 New Stereotype 191 195 199 214 217 221 224 228 232 236 240 244 247 251 254 259 262 269 276 280 283 287 289 291 293 295 298 303 310 312 318 324 326 328 330 New Use Case 211 Non functional constraints 43 Non functional parameters in the Vision document 35 Non functional requirements 34 43 O Object 345 Object Constraint Language 345 Object Diagrams 226 Object Management Group 345 Object Method 344 OCL 345 OMG 345 OOA amp D 345 Open Project 83 Operation 238 Operation Concurrency 242 Operation Details Tabs 239 Operation Modifiers 241 Operation Name 241 Operation Parameter 242 Operation Property Fields 241 365 Index Operation Property Toolbar 240 Operation Raised Signals 243 Operation Stereotype 241 Operation Tagged Values 239 Operation Visibility 241 Opportunistic Design xvii 13 345 Owned Elements of Model 193 of Package 230 P Package 227 Package Details Tabs 227 Package Diagrams 226 Package Generalizations 230 Package Modifiers 229 Package Name 229 Package Namespace 229 Package Owned Elements
248. f the other documents namely the developers cookbook by Markus Klink and Linus Tolke the Quick Guide by Kunle Odutola and the FAQ by Dennis Daniels Connected to the re lease 0 14 changes were made by Linus Tolke and by Michiel van der Wulp These changes were mostly to adopt the manual to the new functions and appearance of ArgoUML version 0 14 and intro duction of the index The users and developers that have contributed by providing valuable input such as review comments or observations while reading and using this manual are too many to name ArgoUML is available for free and can be used in commercial settings For terms of use see the license agreement presented when you download ArgoUML We are providing the source code for ArgoUML for you to review customize to your needs and improve Over time we hope that ArgoUML will evolve into a powerful and useful tool for everyone to use This User Manual is aimed at the working designer who wishes to make use of ArgoUML The manual is presently written assuming familiarity with UML but eventually it will support those new to UML The manual is written in DocBook XML and available as both HTML and PDF The ArgoUML project welcomes those who want to get more involved Look at the project website http argouml tigris org to find out more Tell us what you think about this User Manual Your comments will help us improve things See Sec tion 1 3 3 User Feedback xviii Cha
249. feature 30 UML Based OOA amp D In order to do that just click on the Next button on the Details Pane This will cause a renaming wizard to be displayed inside the properties panel proposing to use the name unt it ledmodel all in lower case 3 4 4 2 Design Critics at Work The Rename Package Wizard Replace the name untitledmodel with purchasingmodel and click on the Finish button Figure 3 11 ArgoUML Window Showing the Critic Wizard to Rename the Package shows how the ArgoUML window will now look Figure 3 11 ArgoUML Window Showing the Critic Wizard to Rename the Package Wi ArgoUML 3 High 7 Medium 3 Add Elements to Package E Watch now how the design critic note in the To Do panel disappears leaving only the Add Elements to Package purchasingmodel note in the To Do list If this doesn t happen at once wait for a few seconds ArgoUML makes heavy use of several threads of execution that execute in parallel This can cause delays of a few seconds before the information gets updated on the screen The package name change should also be reflected in the explorer in the top left corner of your ArgoUML window We are now ready to create our first UML diagram a Use Case diagram but first let s save what we ve done so far Click on the File menu item and select Save Project You can now safely exit ArgoUML 3l UML Based OOA amp D without losing your work so far or go on creatin
250. fier Sequence diagram Collaboration Diagram Collaboration Interaction The top half of the dialog contains a list of all the currently defined perspectives and to the right a series of buttons stacked vertically Button 1 click can be used to select a perspective You can select only one perspective at a time Selecting a perspective reveals a text field above the list where the name of the perspective can be ed ited The lower half of the dialog contains two list areas The one on the left labeled Rules Library contains the list of available rules that may be used to create the perspective The one on the right labeled Selected Rules contains the actual rules chosen for the perspective that has been selected in the list of perspectives at the top In both lists you can select only one rule at a time Separating the two areas in the lower half of the dialog are buttons labeled gt gt and lt lt The first of these transfers the rule selected in the library on the left to the list of rules on the right i e it adds a rule to the perspective The second one transfers the rule selected on the right to the library list on the left i e it removes a rule from the perspective If you hover the mouse over the horizontal line that separates the two halves of the dialog then you see it change shape to indicate that you can grab this line and drag it up or down All three titles of the lists show the number of items in t
251. following sections show how the basic use case diagram can be extended to show additional inform ation about the system being designed 4 3 2 1 Active and Passive Actors Active actors initiate interaction with the system This can be shown by placing an arrow on the associ ation from the actor pointing toward the use case In the ATM example the customer is an active actor Interaction with passive actors is initiated by the system This can be shown by placing an arrow on the association from the use case pointing toward the actor In the ATM example the central computer is a passive actor This is a good example where the arrow helps since it allows us to distinguish an event driven system the ATM initiates interaction with the central computer from a polling system the central computer in terrogates the ATM from time to time Where an actor may be either active or passive depending on circumstances the arrow may be omitted In the ATM example the bank engineer fits into this category Normally he is active turning up on a regular cycle to service the machine However if the ATM detects a fault it may summon the engineer to fix it The use of arrows on associations is referred to as the navigation of the association We shall see this used elsewhere in UML later on Figure 4 2 Use case diagram for an ATM system showing navigation shows the ATM use case dia gram with navigation displayed Figure 4 2 Use case diagram
252. g E Marketing E Precurement 3 sales File Name FirstProjectzargo Files of Type Argo compressed project file zargo m Save Cancel This is a standard Java FileChooser Let s go over it in some detail The main outstanding feature is the scrollable folders list in the center of the dialog By using the scroll bar on the right you can move up and down in the list of folders contained inside the currently selected folder If it is scrollable or not depends on the amount of files and folders shown and also how they are shown If everything fits the window is not scrollable as seen in the picture Double clicking on one of the displayed folders navigates you into that folder allowing you to quickly navigate down into the folders hierarchy on your hard disk Notice that only folder names and no file names are displayed in the scrollable area Indeed the dialog is currently set up in order to show only ArgoUML project files with an extension of zargo as can be seen on the lower drop down control labeled Files of Type Also notice that the currently selected folder s name is displayed in the upper drop down control labeled Look in A single click on a folder inside the scrollable area does select that folder on screen but does not select the folder for saving At the top of the dialog above the scrollable folder chooser area there are a few more folder navigation tools 23 UML Based OOA amp D Th
253. g the signal that causes the event when called Button 1 double click navigates to the selected signal button 2 gives a pop up menu with two entries e Add This opens a dialog box that allows selecting an already existing signal New Signal Creates a new Signal and navigates to it When Double text field Only present for a Time Event This allows expressing the time that the event is called The first of the two fields is for the body of the expression and the second one for the language in which it is written Warning In ArgoUML V0 20 the properties panel of a change event lacks a field to enter the change expression 290 Statechart Diagram Artifact Reference 20 10 Guard A guard is associated with a transition At the time an event is dispatched the guard is evaluated and if false its transition is disabled In the UML metamodel Guard is a child of ModelElement A guard is shown on the diagram by the text of its expression in square brackets 20 10 1 Guard Details Tabs The details tabs that are active for guards are as follows ToDoItem Standard tab Properties See Section 20 10 2 Guard Property Toolbar and Section 20 10 3 Property Fields For Guard below Documentation Standard tab Stereotype Standard tab containing the stereotypes for the guard In the UML metamodel Guard has no standard stereotypes defined Tagged Values Standard tab In the UML meta
254. g to review a software development artifact Many devel opment organizations have developed checklists of common design problems for use in design review meetings Recent research indicated that reviewers inspecting code without meeting makeing use of these checklists are just as effective as design review meetings Hence a checklist feature has been added to ArgoUML that is much in the spirit of design review checklists However ArgoUML s checklists are integrated into the design tool user interface and the design task A software designer using ArgoUML can see a review checklist for any design element The Checklist tab presents a list of check off items that is appropriate to the currently selected design element For ex ample when a class is selected in a design diagram the checklist tab shows items that prompt critical thinking about classes See the figure below Designers may check off items as they consider them Checked items are kept in the list to show what has already been considered while unchecked items prompt the designer to consider new design issues ArgoUML supplies many different checklists with many possible items Figure 13 18 An example of a checklist for a class 167 The Details Pane ClassABC iu i As Diagram 4 ToDo Item A Properties Documentation amp Presentation amp Source A Constraints A Tagged Values Checklist Warning What items you check is not saved
255. g true An event is represented by its name 20 9 1 Event Details Tabs The details tabs that are active for events are as follows 288 Statechart Diagram Artifact Reference ToDoItem Standard tab Properties See Section 20 9 2 Event Property Toolbar and Section 20 9 3 Property Fields For Event be low Documentation Standard tab Stereotype Standard tab In the UML metamodel an Event has the following standard stereotypes defined create fora CallEvent only Create is a stereotyped call event denoting that the instance receiving that event has just been created For state machines it triggers the initial transition at the topmost level of the state machine and is the only kind of trigger that may be applied to an initial transition destroy fora CallEvent only Destroy is a stereotyped call event denoting that the in stance receiving the event is being destroyed Tagged Values Standard tab In the UML metamodel an Event has no standard tagged values defined 20 9 2 Event Property Toolbar d GO up Navigate up through the composition structure go w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected event navigating im mediately to the properties tab for that stereotype CT New parameter This creates a new parameter for the event operation as the current parameter navigating immedi ately to the properties tab for that paramete
256. g your first diagram 3 5 The Case Study To be written To be written 32 Chapter 4 Requirements Capture 4 1 Introduction Requirements capture is the process of identifying what the customer wants from the proposed sys tem The key at this stage is that we are in the problem domain At this stage we must describe everything from the customer perspective and in the language of the customer The biggest risk we have in requirements capture is to start thinking in terms of possible solutions That must wait until the Analysis Phase see Chapter 5 Analysis One of the steps of the Analysis Phase will be to take the output of the Requirements Phase and recast it in the language of a deemed solution Remember we are using both a incremental and an iterative process We may well come back to the requirements process again as we break down the problem into smaller chunks each of which must have its requirements captured We will certainly come back through the requirements phase on each iteration as we seek to define the requirements of more and more of the system Note Cer The only part of the requirements notation specified by the UML standard is the use case diagram The remainder is process specific The process described in this chapter draws heavily on the Rational Unified Process 4 2 The Requirements Capture Process We start with a top level view of the problem we are solving and the key
257. gers defined ArgoUML will not currently check for this They may have guards to provide a choice where there is more than one transition Note Unlike an ordinary state an internal transition an exit action and a Do activity are not per mitted for action states An action state is represented on an activity diagram in ArgoUML as a rectangle with rounded corners containing the name of the action state Caution The UML standard specifies that the text shown in the action state on the activity diagram should contain the expression associated with the entry action which is implemented as such since ArgoUML V0 18 In past versions of ArgoUML 0 16 1 and before the dia gram used to show the action state name Loading a project created by one of the older ver sions causes the project file to be converted to the correct format to conform to the UML standard This process is designed to be transparent for the user and the only drawback is that the activity diagram in the project will not show correctly when reloaded in an old ver sion of ArgoUML again 22 2 1 Action State Details Tabs The details tabs that are active for action states are as follows ToDoItem Standard tab Properties See Section 22 2 2 Action State Property ToolBar and Section 22 2 3 Property fields for action state below Documentation Standard tab Presentation Standard tab The values for the bounds of the action state define the bound
258. gged will be the generalizing end Dragging into empty space will create a new use case to be the generalizing end Similarly dragging on the bottom handle will create a generalization in which the original use case is the generalizing end Generalization is also permitted between actors although its use is beyond the scope of this tutorial Un like use cases there are no generalization handles on actors so generalizations must be created using the toolbar icon It is possible to name generalization relationships using the property tab but this is rarely done If a name is provided it will be displayed on the use case diagram Stereotypes UML has the concept of stereotyping as a way of extending the basic notation It may prove useful for example to model a problem at both the business level and the engineering level For both of these we will need use cases but the use cases at the business level hold a different sort of information to those at the engineering level Very likely they use different language and notation in their underlying use case specifications Stereotypes are used to label UML artifacts such as use cases to indicate that they belong to a certain category Such labels are shown in guillemots above the name of the artifact on the diagram The UML standard defines a number of standard stereotypes and the user may define more stereotypes of his own You will see that ArgoUML has a drop down selector Stereotype
259. gles circles lines polygons curves text to provide supplementary information on diagrams 3 4 2 7 1 Moving Diagram Elements There are several ways to move diagram elements 3 4 2 7 1 1 Using the Mouse Keys Select the elements you want to move By holding down the Ctrl key while selecting you can select sev eral elements to move at the same time Now hit your arrow keys Your elements move a little with every key stroke If you also hold down the Shift key they move a bit faster 3 4 2 7 1 2 Using the Edit Pane Toolbar Click on the broom button on the toolbar Move your mouse to the diagram pane right click and hold Now moving your mouse will align elements 3 4 2 7 2 Arranging Elements The menu item Arrange allows you to align group or nudge elements 3 4 2 8 Working with Projects 3 4 2 8 1 The Start Up Window Figure 3 6 Initial ArgoUML window shows the ArgoUML main window as it appears as right after start up The main window s client area below the menu and toolbar is subdivided into four panes Starting at the leftmost top pane and working around the clock you can see the Explorer showing a tree view of your UML model the Editing Pane with its toolbar two scroll bars and gray drawing area the Details Pane with the ToDoltem tab selected and the To Do Pane with a tree view of the to do items ranked in various ways selected via the drop down list at the top of the pane Each time ArgoUML is started u
260. gument button 2 click brings up a pop up menu with one entry e Add This brings up a dialog box that allows selecting the one classifier that gets created 20 4 Composite State A composite state is a state that contains other states known as sub states allowing hierarchical state machines to be constructed A composite state is represented on a statechart diagram in ArgoUML as a large rectangle with rounded corners with a horizontal line separating the name at the top from the description of the behavior and the model of the sub state machine below The description of the behavior includes the entry exit and do actions and any internal transitions Sub states are placed within a composite machine by placing them entirely within the composite state This can be done at creation time i e when creating the state for the first time in the editing pane Al ternatively an existing state can be dragged onto a composite state The description of a composite state is almost identical to that of a state see Section 20 2 State and so is not duplicated here The only differences is one additional tool one missing field and one additional field which are described as follows E New Concurrent Region Adds a new concurrent region to the selected composite state Deferrable Events This field is missing from V0 20 of ArgoUML Subvertices Text area Lists all the sub states contained within this composite state Button
261. h state This is the state hierarchy Button 1 double click on the entry will navigate to the composite state that contains this state or the top level state that is the root of the state containment hierarchy Bound Editable text box Shows the Bound of the Synch state Which is a positive integer or the value un limited represented by a specifying the maximal count of the SynchState The count is the dif ference between the number of times the incoming and outgoing transitions of the synch state are fired Incoming Text area Lists any incoming transitions for the final state Button 1 double click navigates to the selected transition Outgoing Transitions Text area Lists any outgoing transitions for the final state Button 1 double click navigates to the selected transition 299 Chapter 21 Collaboration Diagram Artifact Reference 21 1 Introduction This chapter describes each artifact that can be created within a collaboration diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram There is a close relationship between this material and the properties tab of the details pane see Sec tion 13 3 Properties Tab That section covers Properties in general in this chapter they are linked to specific artifacts d Caution Collaboration diagrams are not fully developed yet in ArgoUML Many aspects are not fully implemented or may not behave as e
262. h the UML standard stereotypes docu ment executable file library and table ArgoUML also provides the standard Classi fier stereotypes metaclass powertype process threadand utility Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows altering the namespace for the component This is the package hierarchy Modifiers Check box with entries abstract leaf and root Abstract is used to declare that this component cannot be instantiated but must always be specialized Leaf indicates that this component cannot be further specialized Root indicates the node can have no generalization Generalizations Text box Lists any component that generalizes this component Specializations Text area Lists any derived components i e those for which this component is a generalization Client Dependencies Text area Lists outgoing dependencies Button 1 double click navigates to the dependency Supplier Dependencies Text area Lists incoming dependencies Button 1 double click navigates to the dependency Residents Text box Lists any residents see Section 23 4 Component designed to be deployed on this type of node Button 1 double click navigates to the selected entry Component Instance A component instance is an instance of a component see Section 23 4 Component
263. hat artifact Tip Most namespace hierarchies should be managed through the package mechanism Namespace hierarchies through classes are best restricted to inner classes Conceivable datatypes signals and interfaces could also appear here but actors and use cases would seem of no value 234 Class Diagram Artifact Reference 18 6 Attribute Attribute is a named slot within a class or other Classifier describing a range of values that may be held by instances of the class In the UML metamodel it is a sub class of St ructuralFeature which is itself a sub class of Feature An attribute is represented in the diagram on a single line within the attribute compartment of the class Its syntax is as follows visibility attributeName type initialValue visibility is or corresponding to public protected private or package visibility re spectively attributeName is the actual name of the attribute being declared type is the type UML datatype class or interface declared for the attribute initialValue is any initial value to be given to the attribute when an instance of the class is created This may be overridden by any constructor operation In addition any attribute declared static will have its whole entry underlined on the diagram 18 6 1 Attribute Details Tabs The details tabs that are active for attributes are as follows ToDoItem Standard tab Properties See Section 18 6 2 Attribute Propert
264. he key issue is that for each context definition you need to define what is the contextual 161 The Details Pane Classifier i e the classifier that will be associated with the self keyword The creators of the OCL specification claim that this is not an issue for the OCL specification but rather for UML or some integration task force Conversely it seems that the UML specification people seem to expect this to be defined in the OCL specification which is why we did a first step in that direction in OCL 2 0 So to cut a long story short it appeared that the simplest solution for ArgoUML at the mo ment would be to enable the OCL property panel only for those model elements for which there actually exists a definition of the contextualClassifier in OCL 1 4 These are s above Class Interface and Feature The standard pre defines a small number of constraints for example the xor constraint over a set of as sociations indicating that only one may be manifest for any particular instance The standard also envisages a number of circumstances where general purpose constraints may be use ful e To specify invariants on classes and types in the class model To specify type invariants for stereotypes To describe pre conditions and post conditions on operations and methods e To describe guards e As a navigation language and To specify constraints on operations Figure 13 14 A typical Constraints tab on the detail
265. he list ArgoUML V0 20 has 8 default perspect ives and 68 rules in the library to build perspectives from The buttons at the top right are explained as follows 125 11 6 11 6 1 The Explorer New This creates a new perspective from scratch with no rules selected with an automatically gen erated name Remove This removes the selected perspective Duplicate This creates a copy the selected perspective so it can be used as the basis of a new perspective The new one is named Copy of followed by the original name Move Up This moves the selected perspective one place up in the list This button is downlighted for the topmost perspective Move Down This moves the selected perspective one place down in the list This button is down lighted for the last perspective Restore Defaults This restores all perspectives and their selected rules to the build in defaults of ArgoUML At the very bottom right is a button labeled OK to be used when all changes are complete button 1 click on this button will close the dialog window The changes are saved when you exit ArgoUML or inme diately by activating the menuitem File gt Save Configuration in the argo user properties file Then there is the Cancel button which cancels all changes made in the dialog Pressing the dialog close icon usually at the top right corner has the same effect as pressing the cancel button Context Sensitive Menu Button 2 Clic
266. he total number of iterations depends on the size of project Take the estimated time working out guessing that is a whole subject on its own and divide it into 8 week chunks Experience seems to sug gest that the iterations will divide in the ratio of around 1 2 3 3 into RUP style inception elaboration construction and deployment phases A project that has great vagueness in its specification some ad vanced research projects for example will tend to be heavier on the early phases When building a product to contract for a customer the end point is well defined However when devel oping a new product for the market place a strategy that can be used is to decide the product launch date and hence the end date for completion of engineering some time before The time is then divided into iterations and as much of the product as can be built in that time developed The iterative process is very effective where time to market is more important than the exact functionality 3 2 1 3 Recursive Development Processes 3 2 2 Very few software systems are conceived as monolithic artifacts They are broken down into subsys tems modules etc Software processes are the same with early parts of the process defining a top level structure and the process reapplying to parts of the structure in turn to define ever greater details For example the initial design of a telephone system might identify objects to i handle the phone lines ii process
267. hical additions to diagrams Although they are not UML ar tifacts the UML standard provides for such decoration to improve the readability of diagrams 3 Hp These drawing tools provide a useful way to partially support some of the UML features such as general purpose notes that are missing from the current release of ArgoUML Eight tools are provided all grouped into one drop down widget See Figure 12 3 The drawing tools selector Button 1 click on the diagram will place an instance of the graphical item of the same size as the last one placed The size can be controlled by button 1 motion during placement One side or end of the element will be at button 1 down the other side or end at button 1 up In general after they are placed on the diagram graphical elements can be dragged with the Select tool and button 1 and re sized by button 1 motion on the handles after they have been selected Figure 12 3 The drawing tools selector O 0O G S A D m e Rectangle Provides a rectangle C Rounded Rectangle Provides a rectangle with rounded corners There is no control over the degree of rounding C Circle Provides a circle 132 The Editing Pane 12 3 4 w Line Provides a line A Text Provides a text box The text is entered by selecting the box and typing Text is centered TN and after typing the box will shrink to the size of the text However it can be re sized by dragging on the corners
268. hoices Selected Qualifiers Text box Records the qualifiers for this association end Button 1 double click on this entry will navigate to that qualifier Button 2 click will show a popup menu containing two items Move Up and Move Down which allow reordering the qualifiers Aggregation Radio box with three entries composite none and aggregate Indicates whether the relation ship with the far end represents some type of loose whole part relationship aggregation or tight whole part relationship composite Shared aggregation is shown by a hollow diamond at the whole end of the association Composite aggregation is shown by a solid diamond Cae Note You may not have aggregation at both ends of an association ArgoUML does not en 257 Class Diagram Artifact Reference force this constraint The whole end of a composite aggregation should have a multiplicity of one ArgoUML does not enforce this constraint Changeability Radio box with three entries add only changeable and frozen Indicates whether instances of this end of the association end may be i created but not deleted after the target instance is cre ated ii created and deleted by the source after the target instance is created or iii not created or deleted by the source after the target instance is created Visibility Radio box with four entries public private protected and package Indicates whether navigation to this end may
269. i v Cancel 10 3 8 amp Import Sources A very powerful feature of ArgoUML is that it can Reverse Engineer Java code to yield a class dia gram This sub menu entry specifies Java code to be imported for reverse engineering The dialog box is similar to that for Open Project see Figure 10 2 The file selection dialog for Open Project but with two extra tabs placed alongside the directory listing as shown in Fig ure 10 7 The file selection dialog for Import Sources Figure 10 7 The file selection dialog for Import Sources 87 The Menu bar Ww Import Sources argeuml v b pag General Java Select language for import gt i Qu iti uml Java My Recent 3 cvs util Documents doc files xml Descend directories recursively iien Changedjnew files only C3 Images kernel Create diagrams from imported code 2 language Minimise Class icons in diagrams model moduleloader Perform Automatic Diagram Layout O notation od O pattern Classfiers only C3 persistence resource swingext Full import S File name argouml Input source file encoding My Network Places Files of type Java Source File java v Cp1252 Level of import detail Classifiers plus feature specifications Those fields that are the same as Open Project behave in the same way see Section 10 3 2 Open Project N
270. iagram with an extend relationship to a use case for unscheduled repairs The diagram is now get ting rather complex and so we have split it into two one for the maintenance side of things the other for customer usage and audit The Maintain Equipment use case defines a name Unsched at the start of its description The ex tending use case Unscheduled Repair is attached there when the ATM detects an internal error Figure 4 5 Use case diagram for an ATM system showing an extend relationship 39 4 3 3 Requirements Capture T Maintain ATM N f Include n PY Bank Engineer include 1 3 F3 a up Equipment me Reload ATM Local Bank Official Unsched Start of spec extend when ATM petects inte rna fault t Unscheduled Re pair Use cases may be linked together in one other way One use case may be a generalization of a subsidi ary use case or alternatively the subsidiary is a specialization of the main use case This is very like the extends relationship but without the constraint of specific extension points at which the main use case may be extended and with no condition on when the subsidiary use case may be used Generalization is shown on a use case diagram by an arrow with solid line and solid white head from the subsidiary to the main use case This may be useful when a subsidiary use case specializes the behavior of the main use case at a large number of pos
271. ial value C Show properties Show types and parameters Show stereotypes in explorer Default shadow width x Jl Cancel J Apply Reset To Default In the Notations tab you are able to set the following fields e The first field is a combobox that allows selection of the project s Notation language By default it lists UML and Java but other languages may be added by plugins See the chapter on Notation for more explanation Section 12 10 Notation e Use guillemots for stereotypes clear by default By default ArgoUML uses pairs of less than and greater than lt lt gt gt characters for stereotypes If this box is checked stereotypes on dia grams are shown between true guillemots This feature is presumably added to ArgoUML because guillemots are poorly supported by various fonts and if they are present then they are quite small and poorly visible Show visibility clear by default If this is selected then ArgoUML will show the visibility indicators in front of e g attributes in the diagram In UML the notation is for public for private for protected and for package E g for an attribute it may show newAttr Int Show multiplicity clear by default If this is selected then ArgoUML will show the multi plicity of e g attributes in the diagram In UML notation the multiplicity is shown between such as tnewAttr 0 int This setting has no
272. ibe all aspects of the system s behavior in the problem domain 3 2 2 2 Analysis During the analysis stage we will introduce the UML concept of classes to allow us to build a top level view of the objects that will make up the solution sometimes known as a concept diagram We will introduce the UML sequence diagram and statechart diagram to capture requirements for the overall behavior of the system Finally we will take the Use Cases from the requirements capture stage and recast them in the language of the solution domain This will illustrate the UML ideas of stereotyping and realization 3 2 2 3 Design We use the UML package diagram to organize the components of the project We then revisit the class diagram sequence diagram and statechart diagram to show how they can be used recursively to design the complete solution During this part of the process we need to develop our system architecture to define how all the com ponents will fit together and operate Although not strictly part of our process we ll look at how the UML collaboration diagram can be used as an alternative to or to complement the sequence diagram Similarly we will look at the UML activity diagram as an alternative or complement to the statechart diagram Finally we shall use the UML deployment diagram to specify how the system will actually be realized 3 2 2 4 Build UML is not really concerned with code writing However at this stage we will sh
273. ical representation on the screen beyond their textual description do not have style tabs of their own For example the style sheet of an operation on a class will be downlighted Style sheets vary a little from artifact to artifact but Figure 13 8 A typical Presentation tab on the details pane shows a typical style tab for an artifact in ArgoUML in this case a class Figure 13 8 A typical Presentation tab on the details pane 4 44 ToDo Item Properties amp Documentation Presentation 4 Source A Constraints A Stereotype Tagged Values A Checklist Display sed Path V Attributes v Operations Bounds 88 64 60 65 Fill Line Shadow No Shadow v There may be further fields in some cases e g for a package but most fields are common to many arti facts e Path This checkbox allow to display or hide the path in front of the name of the modelelement It is shown in UML notation with seperators E g the ArgoUML Main class would be shown as org argouml application Main Attributes This checkbox allows to hide or show the attributes compartment of a class Operation This checkbox allows to hide or show the operations compartment of a class or inter 156 The Details Pane face Stereotype This checkbox allows to reveal or hide the stereotypes of a package shown above the name Visibility This checkbox allows to hide the visibility of a pack
274. icate2 boolean predicate2 boolean predicated2 boolean anon Generalization As Diagram 4 314 tems 4 ToDo ttem A Properties 4 Documentation amp Presentation A Source Tagged Values f Generalization A if Parent E critic Name Chile ES compounderitic ao 73 Define Concrete eoi ARE C Add Instance Variables ti uM ns v 4 Powertype 71 Add Associations to void Discriminator C Add Operations to void M Namespace E criticmodel i For any artifact within the system this pane is where all its associated data is viewed and entered The Pane has a series of tabs at the top which are selected by button 1 click The body of a tab is a menu of items to be checked selected or entered specific to the particular tab selected Of these the Properties Tab is by far the most complex with a different presentation for each arti fact within the system The detailed descriptions of the properties tab for each artifact are the subject of separate chapters covering the artifacts that may appear on the various diagrams see Chapter 16 Top Level Artifact Reference through Chapter 23 Deployment Diagram Artifact Reference 13 2 To Do Item Tab This tab provides control over the various to do items created by the user or raised automatically by the ArgoUML critics discussed in more detail in the section on the Critique menu see Section 10 9 149 The Detail
275. ick Clicking on an user interface object or on a diagram artifact may establish many different things Most of the behaviour is experienced quite intuitive by the user mainly because the high degree of standard isation even spanning different computer platforms Macintosh PC UNIX ArgoUML follows the Java Look and Feel Design Guidelines by Sun See http java sun com products jlf Hence behaviour of common user interface components is generally not discussed in this document 8 2 2 On the other hand mouse actions in a diagram may not seem so intuitive to the user since it is specific for ArgoUML Hence they are explained here In short clicking selects or activates the object beneath the mouse pointer and moves the focus i e navigation More in detail the button 1 click may cause the following result 8 2 2 1 Selection Here button 1 is used to choose select an artifact in a list or tree or on a diagram on which subsequent operations will take place Multiple artifacts may be selected by using Shift and or Ctrl in combination with button 1 see Section 8 2 5 Shift and Ctrl modifiers with Button 1 Selection is always clearly in dicated by a colored background On a diagram the selected artifact is indicated with colored blocks at the corners ends of the object Artifacts can be selected or deselected in different ways Button 1 click Deselects all artifacts and selects the one clicked on 75 Introd
276. ick on this entry will give a drop down menu of all available use cases and an empty entry which may be selected by button 1 click 225 Chapter 18 Class Diagram Artifact Reference 18 1 Introduction This chapter describes each artifact that can be created within a class diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram Class diagrams are used for only one of the UML static structure diagrams the class diagram itself Ob ject diagrams are represented on the ArgoUML deployment diagram In addition ArgoUML uses the class diagram to show model structure through the use of packages There is a close relationship between this material and the Properties Tab of the Details Pane see Sec tion 13 3 Properties Tab That section covers Properties in general in this chapter they are linked to specific artifacts Figure 18 1 Possible artifacts on a class diagram shows a class diagram with all possible artifacts dis played Figure 18 1 Possible artifacts on a class diagram AbstractPare ntClass x Interface gt gt static classAttribute int Example Inte rface oeperatien amp lassArg De pe ndedOnClass void inte rfaceOptinte rfaceA rg Integer BigDecimal Realization lass publicAttribute byte 42 protectedAttribute De moType inne rC lass lt Singleton gt gt private
277. if it is 1 The example figure does not demonstrate this but stereotypes of an association are shown on the dia gram but are not editable And stereotypes of association ends are shown together with the association end name 12 10 3 Notation Parsing to be written 148 Chapter 13 The Details Pane 13 1 Introduction Figure 13 1 Overview of the details pane shows the ArgoUML window with the details pane high lighted Figure 13 1 Overview of the details pane Wf critic model zargo org argouml cognitive critics ArgoUML DOR File Edit View Create Arrange Generation Critique Tools Help RhaBS b Of lt gt 4 HEBBBRBD 3 4 E Package centric k 4 EEB 1 B 7 BEBEFB O Order By Type N behead z unmuren at raer By Type Name E newOperation void Bin ES crconstructorNeeded ES crsingleton violated Ed crSingletonViolated E predicate2 ES cru E Critic n 5 tom other critics ES criticutits e ES void No known children predicate2 boolean 73 Examples which at present set es our cet 3 For critics 3 For critics buit 3 For general critics ab anon Dependency Examples which CrConsiderSingleton CrSingletonViolate d CrConstructorNeede A come from anon Dependency cereale T anon Dependency packages lt screate gt gt CrC onsiderSingletord lt lt create gt gt CrSingletonViolated lt lt create gt gt CrC onstructorl a Eee pred
278. ification of the se mantics of the signal derived from the superclass ModelElement Values true meaning the signal is re dundant it can be formally derived from other elements or false meaning it cannot E Note T Derived signals still have their value in analysis to introduce useful names or con cepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 18 9 2 Signal Property Toolbar d GO up Navigate up through the package structure 5 New signal This creates a new signal navigating immediately to the properties tab for that signal D Caution The signal is not associated with the same operation as the original signal so this will have to be done afterwards gs w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected signal navigating immediately to the properties tab for that stereotype Tif Delete This deletes the signal from the model 247 Class Diagram Artifact Reference Warning This is a deletion from the model 18 9 3 Property Fields For Signal Name Text box The name of the signal From their similarity to classes by convention the name of a sig nal has a leading upper case letter with words separated by bumpy caps sia Note The ArgoUML critics do not co
279. ign or knob with a right or bottom pointer depend ing upon the look and feel that you have chosen for an appearance At this point you should try the various choices available for a look and feel You used the editor that es tablishes the look and feel when you were selecting a language however you only saw it in Russian It you look at an English rendition Section 10 4 5 4 Appearance Tab you will see that the topmost com bobox is for selecting the look and feel When the panel is first opened the box contains the current value Select another one exit from ArgoUML and restart it 19 UML Based OOA amp D Select alternately Class Diagram 1 and Use Case Diagram 1 observing that the detail pane changes to track to the selected item in the Explorer The detail pane is described in Chapter 12 It is not necessary to read Chapter 12 at this point but it couldn t hurt 3 4 2 2 The Editing Pane LE 1 Note Reading assignment e Walk through a couple of changes e Add some stuff Delete some stuff Resize things e Select stuff with click and drag e Select stuff with click and ctrl click Edit names inline e Remove images tutorial editoverview gif from file system 3 4 2 3 The Details Pane Lg Note Reading assignment To Do Item Discuss differences with other tabs about locations of items selected Hold particulars for discussion of To Do Pane e Properties Documentation e Presen
280. igure 17 1 Possible artifacts on a use case diagram UseCaseAssociation a M one TA Nord actorEnd useCaseEnd Y Actor i d SpecificActor a SpecificUseCase ps fo ke REM oer A za zxinclude ut g SubsidiaryUseC aseOne P lt lt extend gt gt A 204 zincludess A no E tO P od Fa C M petata ad 17 1 1 ArgoUML Limitations Concerning Use Case Dia grams Use case diagrams are now well supported within ArgoUML There still are some minor limitations though One is that extension points may be shown in a separate compartment on the use case but this is not retained after saving and reloading i Note Ce Earlier versions of ArgoUML 0 9 and earlier implemented extend and include relation ships by using a stereotyped dependency relationship Although such diagrams will show correctly on the diagram they will not link correctly to the use cases and should be re placed by proper extend and include relationships using the current system 206 Use Case Diagram Artifact Reference 17 2 Actor An actor represents any external entity human or machine that interacts with the system providing in put receiving output or both Within the UML metamodel actor is a sub class of classifier The actor is represented by a stick man figure on the diagram see Figure 17 1 Possible artifacts on a use case diagram 17 2 1 Actor Details Tabs The details ta
281. impact on showing multiplicity near associ ationends Show initial value clear by default If this is selected then ArgoUML will show the initial 92 The Menu bar value of e g attributes in the diagram In UML notation the initial value is shown e g like this newAttr int 1 Show properties clear by default If this is selected then ArgoUML will show various prop erties between braces E g for an attribute it may show tnewAttr int frozen Show types and parameters set by default When this checkbox is unmarked attributes in classes are shown without type indication and operations are shown without parameters This fea ture may be usefull during the analysis phase of your project If all checkmarks in the Notation Tab are unchecked then e g for an attribute ArgoUML may show newAttr And for an operation newOperation Show stereotypes in explorer clear by default If this is selected then ArgoUML will show stereotypes next to the icons of the modelelements in the Explorer i e the tree structure at the left hand side e Default shadow width set to 1 by default ArgoUML is able to draw all elements on a dia gram with a shadow for esthetical reasons Use this setting to adjust the size of the shadow used when the modelelement is created The details tab Presentation allows to set the shadow per modelelement after they are created but ArgoUML V0 22 does not retain this latter
282. ing Actors and Use Cases For the ATM case study we will elaborate on the examples in Section 4 3 Output of the Requirements Capture Process Figure 4 4 Use case diagram for an ATM system showing include relationships and Figure 4 5 Use case diagram for an ATM system showing an extend relationship and progress to identify additional actors and use cases that comprise our model of the ATM system Figure 4 4 Use case diagram for an ATM system showing include relationships and Figure 4 5 Use case diagram for an ATM system showing an extend relationship exemplified the essential concepts and components of a use case diagram such as use cases actors multiplicity and include extend relationships They showed the relationships between the actors and use cases and demonstrated how these actors and use cases interact In Figure 4 4 Use case diagram for an ATM system showing include relationships we see a use case diagram for an ATM system consisting of include relationships for the use cases Maintain ATM and Use ATM Maintain ATM was further defined by two use cases Maintain Equipment and Reload ATM Use ATM was further defined in terms of the behavior of three simpler use cases Deposit Cash Withdraw Cash and Query Account More to be written Associations To be written To be written 51 Requirements Capture 4 5 4 Advanced Diagram Features To be written To be written 4 5 5
283. ing a new enough Java Runtime Environment it must be 1 4 or later Wrong language If the product came up in a language you can t read or just don t want go to the second leftmost menu item in the menu bar at the top of the screen Select the bottom most menu entry in the drop down Figure 3 5 Setting Language in the Appearance Pane show this in Russi an Then click on the second tab from the bottom in the column of tabs on the left Drop down the list as shown in Figure 3 5 Setting Language in the Appearance Pane and select a language Note that the languages are listed in themselves The language shown as being selected is German in which the word for German is Deutsch You will have to exit ArgoUML and restart it for the change to take effect Use the X button at the upper right Figure 3 4 Finding the Settings Wizard 17 UML Based OOA amp D lolx Marin PegakTHpoBaTb Mpocmotp CosAaarb AaMarpawMy PaccTaBMTb eHepauuakKoaa KpHrMKa ViHcTpyMeHTe Momowb G BbipaTe Es A ie VnanWrb Ms AMarpanMb Delete Ein EB gt ver e fA T mE SFB Ll w ynanuTrb H3 MOAENH Ctrl Delete EB 2 8 Duarpamn Y cranoskn Qwarpama EapsaHros wcnonesc As Diagram m E ino NpHopyrery 2 nyHKTEI erom rpauwienn 1 Stereotvoe V MEHOBAHHbIE SHAYEHHA Ipee lt 4 Caenare Ceoiicrea A Dokymerrauna 737 Ef Bore H E Cpeannii E53 Model ec
284. ing box of the action state Stereotype Standard tab that shows the stereotypes of the action state In the UML metamodel there are no ste reotypes defined by default for a action state Tagged Values Standard tab In the UML metamodel Act ionState has no standard tagged values defined 22 2 2 Action State Property ToolBar 317 Activity Diagram Artifact Reference By CO up Navigate up through the containment structure Action states are contained by the otherwise invis ible top state ay N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected action state navigat ing immediately to the properties tab for that stereotype Tif Delete from Model This deletes the action state from the model e Warning This is a deletion from the model not just the diagram It is not possible to delete an action state from the diagram since that concept does not fit the UML standard Hence ArgoUML does also not show the Add to Diagram pop up menu for action states 22 2 3 Property fields for action state Name Text box The name of the action state By convention action state names start with a lower case let ter and use bumpy caps to divide words within the name Note ArgoUML does not enforce this naming convention Container Text box The container of the action state This shows the otherwise invisible composite state at the top of the containment hierarchy Entr
285. ins 2 Java 344 K Key features in the Vision document 35 Kind of Parameter 245 L Literals of Datatype 197 of Enumeration 200 Location 364 Index of Extension Point 215 M Mailing lists 2 2 Market Context in the Vision document 35 Mealy Machine 344 Menu Bar 21 Method of a Class 344 of an Object 344 Model Details Tabs 190 Model Modifiers 192 Model Name 191 Model Namespace 192 Model Owned Elements 193 Model Stereotype 192 Model Visibility 192 Model The 190 Modifiers of Actor 209 of Association End 255 of Class 233 of Datatype 196 of Enumeration 199 of Model 192 of Operation 241 of Package 229 of Stereotype 203 of Use Case 212 Moore Machine 344 Mouse Behavior in the Explorer 121 Multiplicity in a Use Case Diagram 37 of Association End 255 of Attribute 237 Setting 47 N Name of Actor 208 of Association 252 of Association End 255 of Attribute 236 of Class 232 of Datatype 195 of Dependency 259 of Diagrams 205 of Enumeration 199 of Extend Relationship 221 of Extension Point 214 of Generalization 217 of Include Relationship 224 of Model 191 of Operation 241 of Package 229 of Parameter 245 of Signal 248 of Stereotype 202 of Use Case 40 211 Namespace of Actor 209 of Dependency 260 of Extend Relationship 222 of Generalization 218 of Include Relationship 225 of Model 192 of Package 229 o
286. ints for the ArgoUML project the web site and the developers mailing list Report bugs This gives information about how to deal with bugs in ArgoUML It is important that all bugs are reported and all cooperation is appreciated Legal A statement of the FreeBSD license which covers all the ArgoUML software D Caution The various documentation of the project are not all covered by FreeBSD which is really meant for software In particular this manual is covered by the OpenPub license 119 The Menu bar see Appendix F Open Publication License 120 Chapter 11 The Explorer The Explorer was previously called Navigation Pane Tree or sometimes Navigator Pane Tree 11 1 Introduction Figure 11 1 Overview of the explorer shows the ArgoUML window with the explorer highlighted Figure 11 1 Overview of the explorer wi critic model zargo org argouml cognitive critics ArgoUML DAR File Edit View Create Arrange Generation Critique Tools Help COHERE DEBRBRD E Package centric order By Type Name amp E CrConstructorNeeded ES CrSingleton violated E CrSingletonViolated E predicate2 amp E crum EB critic c EB criticutits ES void 73 Examples which 73 For critics 73 For critics built 3 For general critics 7 anon Dependency 7 anon Dependency T anon Dependency 4 anon Generalization t anon Generalization 73 Define
287. ion from the model not just the diagram To delete an association role from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 21 3 3 Property Fields For Association Role Name Text box The name of the association role which is shown on the diagram By convention associ ation role names start with a lower case letter and use bumpy caps to divide words within the name Note ArgoUML does not enforce this naming convention 307 Collaboration Diagram Artifact Reference Stereotype Drop down selector Association role is provided by default with the UML standard stereotype from the superclass Association implicit Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 18 4 Stereotype Namespace Text box Records the namespace for the association role This is the package hierarchy Button 1 double click on the entry will navigate to the item showm Base Drop down selector Records the association that is the base for the association role The drop down selector shows all associations that exist between the classifiers that correspond with the connected classifier roles Association End Roles Text area Lists the ends of this association role An association role can have any number of ends but two is generally the only useful number link objects can led to a third end on instance le
288. ion which is handled by the documentation tab under ArgoUML Checklist Standard tab for an Interface 18 15 2 Interface Property Toolbar By GO up 261 Class Diagram Artifact Reference Navigate up through the package structure New operation L This creates a new operation see Section 18 7 Operation within the interface navigating imme diately to the properties tab for that operation New reception e p This creates a new reception navigating immediately to the properties tab for that reception New interface This creates a new interface in the same namespace as the selected interface navigating immedi ately to the properties tab for the new interface ay N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected interface navigating immediately to the properties tab for that stereotype Tif Delete This deletes the interface from the model g Warning This is a deletion from the model not just the diagram To delete an interface from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 18 15 3 Property Fields For Interface Name Text box The name of the interface The name of an interface has a leading capital letter with words separated by bumpy caps GP Note in Unlike classes the ArgoUML critics will not complain about interface names that do not have an initial capital S
289. ions To be written To be written 5 3 3 1 Entering Data Into Attributes and Methods Windows Click directly in the class artifact and start typing Do not use the properties window dialog fields they are not fully functional and liable to cause you a little frustration In fact it would be interesting to see if you can type stereotypes write in the class attribute box for gen erating XML diagrams 5 3 3 2 Class Attributes To be written To be written 5 3 3 3 Class Operations To be written To be written 5 3 4 Advanced Class Features To be written 5 3 4 1 Association Classes To be written To be written 5 3 4 2 Stereotypes To be written To be written 5 4 Sequence Diagrams To be written To be written 55 Analysis 5 4 1 The Sequence Diagram To be written To be written 5 4 2 Identifying Actions To be written To be written 5 4 3 Advanced Sequence Diagrams To be written To be written 5 5 Creating Sequence Diagrams in ArgoUML 5 5 1 Sequence Diagrams 5 5 1 1 Creating a Sequence Diagram Normally you can just start a sequence diagram right away On the Create Diagram menu choose Sequence 5 5 2 Actions To be written To be written 5 5 3 Advanced Sequence Diagrams To be written To be written 5 6 Statechart Diagrams To be written To be written 5 6 1 The Statechart Diagram To be written Types of state
290. is is used to select items in a context sensitive menu popped up by use of button 2 click 12 3 The tool bar 130 The Editing Pane The toolbar at the top of the editing pane provides the main functions of the pane The default tool is the Select tool In general button 1 click on any tool selects a tool for one use before reverting to the default tool and button 1 double click selects a tool for repeated use The tools fall into four categories e Layout tools Provide assistance in laying out artifacts on the diagram Annotation tools Used to annotate artifacts on the diagram Drawing tools Used to add general graphic artifacts to diagrams Diagram specific tools Used to add UML artifacts specific to a particular diagram type to the dia gram Some of the tools that are generally not all used so often are combined in a dropdown to take less space on the toolbar See e g Figure 12 3 The drawing tools selector Press the symbol at the right of the tool to pop it open These drop down tools remember their last used tool persistently This means that when ArgoUML starts they show the last tool that was activated the previous time ArgoUML was run 12 3 1 Layout Tools The following two tools are provided in all diagrams in this category Select This tool provides for general selection of artifacts on the diagram Button 1 click will select an artifact CTRL with button 1 can be used to select or de
291. isted here navigates to that artifact 18 3 Datatype Datatypes are not specific to packages or class diagrams and are discussed within the chapter on top level artifacts see Section 16 3 Datatype 18 4 Stereotype Stereotypes are not specific to packages or class diagrams and are discussed within the chapter on top level artifacts see Section 16 5 Stereotype 18 5 Class The class is the dominant artifact on a class diagram In the UML metamodel it is a sub class of Clas sifier and GeneralizableElement A class is represented on a class diagram as a rectangle with three horizontal compartments The top compartment displays the class name and stereotype the second compartment any attributes and the third any operations The last two compartments may optionally be hidden 18 5 1 Class Details Tabs The details tabs that are active for classes are as follows ToDoItem Standard tab 230 Class Diagram Artifact Reference Properties See Section 18 5 2 Class Property Toolbar and Section 18 5 3 Property Fields For Class be low Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The tick boxes Attributes and Operations allow the attributes and operations compartments to be shown the default or hidden This is a setting valid for only the current dia gram that shows the class The Bounds field defines the bounding box for the package on the
292. iting pane is a small tab labeled as As Diagram The concept is that a UML diagram can be displayed in a number of ways for example as a graphical diagram or as a table Each representation would have its own tab and be selected by button 1 click on the tab Earlier versions of ArgoUML did implement a tabular representation but the current release only sup ports a diagram representation so this tab does not have any function 12 9 Pop Up Menus Within the editing pane button 2 click over an artifact will bring up a pop up menu with a variable num ber of main entries many with a sub menu 12 9 1 Critiques This sub menu gives list of all the critics that have triggered for this artifact Selection of a menu entry causes that entry to be highlighted in the to do pane and its detailed explanation to be placed in the To DoItem tab of the details pane A solid colored line indicates the offending element 12 9 2 Ordering This menu controls the ordering of overlapping artifacts on the diagram It is equivalent to the Re order sub menu of the Arrange menu see Section 10 7 3 Reorder There are four entries E Forward The selected artifacts are moved one step forward in the ordering hierarchy with re 143 The Editing Pane spect to other artifacts they overlap a Backward The selected artifacts are moved one step back in the ordering hierarchy with re spect to other artifacts they overlap p To Front
293. itions and under a wide range of circumstances However the lack of any restriction makes generalization very hard to specify precisely In general use an extend relationship instead The Use Case Specification Each use case must be documented to explain in detail the behavior it is specifying This document is known by different names in different processes use case specification use case scenario or even confusingly just use case A typical use case will include the following sections Name The name of the use case to which this relates Goal A one or two line summary of what this use case achieves for its actors e Actors The actors involved in this use case and any context regarding their involvement gt Note This should not be a description of the actor That should be associated with the actor on the use case diagram 40 Requirements Capture Pre condition These would be better named pre assumptions but the term used everywhere is pre conditions This is a statement of any simplifying assumptions we can make at the start of the use case In the ATM example we might make the assumption for the Maintain Equipment use case that an engineer is always available and we do not need to worry about the case where a routine mainten ance visit is missed d Caution Avoid pre conditions wherever possible You need to be absolutely certain that the pre condition holds under all possible circumstances If
294. ividual or the group selects an ini tial set of responsibilities for the class This initial set should be whatever if anything is immediately obvious 360 The CRC Card Methodology G 2 The Group Whether they are implicitly or explicitly defined the requirements for the system need to be familiar to the people participating in the group The ideal group size for a CRC card session is five or six people This size generally allows everyone to productively participate In groups of larger size productivity is cut by more disagreements and the amount of participation by each is lower If there are more than six people one solution is to have the extra people be present strictly as observers The group five or six people in the core group should be composed of developers domain experts and an object oriented technology facilitator G 3 The Session Before starting a session a part of the problem needs to be selected for the session to focus on Essen tially this means picking the set of classes that are to be used Pick the scenarios that are to be walked through that use the classes picked above Start with scenarios that are part of the systems normal operation first and then exceptional scenarios like error recover later Assign each class to a member of the group Each person should be responsible for at least one class They are the owner of that class for the session Each person records the name of their class on
295. izers are preserved on constructors This also works if you change Method Names after the generation void newOperation std string test fddsaffa section 603522 ec4c7ff768 7ffc begin section 603522 ec4c7ff768 7ffc end If you delete an Operation in the model The next time the class is generated the lost code i e the whole member function definition will be added as comment to the end of the file 355 Appendix E Limits and Shortcomings As all products ArgoUML has some limits Those important to the user are listed in this section E 1 Diagram Canvas Size Due to the underlying diagram editing software the canvas size for diagrams is limited to 6000 units in height and width E 2 Missing functions 356 Appendix F Open Publication License F 1 Requirements On Both Unmodified And Modified Versions The Open Publication works may be reproduced and distributed in whole or in part in any medium physical or electronic provided that the terms of this license are adhered to and that this license or an incorporation of it by reference with any options elected by the author s and or publisher is displayed in the reproduction Proper form for an incorporation by reference is as follows Copyright c lt year gt by lt author s name or designee gt This material may be distrib uted only subject to the terms and conditions set forth in the Open Publication Li cense vX Y or later
296. k navigates to the selected entry 23 3 Node Instance A node instance is an instance of a node where component instances see Section 23 5 Component In stance may reside In the UML metamodel NodeInstance is a sub class of Instance and is spe cifically an instance that is derived from a node A node instance is represented on a deployment diagram in ArgoUML as a three dimensional box labeled with the node instance name if any and node type separated by a colon i Tip It is the presence of the colon and the underlining of the name and type that distin guishes a node instance from a node 23 3 1 Node Instance Details Tabs The details tabs that are active for node instances are as follows ToDoItem Standard tab Properties See Section 23 3 2 Node Instance Property Toolbar and Section 23 3 3 Property Fields For Node Instance below Documentation Standard tab Presentation Standard tab The Bounds field defines the bounding box for the node instance on the diagram a Warning Beware that in the current release of ArgoUML the bounding box just refers to the front face of the cube This means that the three dimensional top and side may be ig nored for example when determining the limits of a diagram for saving graphics Source Standard tab containing just the name of the node instance D Caution 325 Deployment Diagram Artifact Reference A node instance should not generate an
297. k over any selected artifact in the main area of the explorer will cause a pop up menu to appear Add to Diagram This entry on the pop up menu appears for any artifact that could be added to the diagram in the editing pane The item can be placed in a diagram by moving the cursor to the editing pane or a spawned editing pane window where it will appear as a cross and clicking button 1 d Caution This menu entry only appears as not grayed out if the diagram in the editor pane allows to contain the artifact and the artifact is not present yet in the diagram ArgoUML will not let you place more than one copy of any particular artifact on a diagram 11 6 2 if Delete From Model This entry on the pop up menu appears for any artifact that could be deleted from the model amp Warning This deletes the artifact from the model completely not just from the diagram To remove the artifact just from the diagram use the edit menu see Section 10 4 2 Ln Remove From Diagram 126 The Explorer d Caution You can delete a diagram from the model Depending on the type of diagram that might delete all artifacts shown on the diagram To illustrate the differences consider the follow ing examples e Deleting a class diagram does not delete any artifact drawn on it All artifacts that were shown on the diagram remain present in the model This because a class diagram does not map on any artifact according the UML stand
298. l in nature they cannot capture this sort of information Note Some analysts like to place non functional requirements in a section at the end of each use case specification containing the non functional requirements relevant to the use case I don t like this for two reasons First key non functional requirements for example about performance may need to appear in many use cases and it is bad practice to replicate in formation Secondly there are invariably some non functional requirements that are system wide and need a system wide document Hence my preference for a single supplementary requirements specification There should be a section for each of the main areas of non functional requirements The checklist provided by Ian Sommerville in his book Software Engineering Third Edn Addison Wesley 1989 is a useful guide e Speed Processor performance user event response times screen refresh time Size Main memory and possibly caches disc capacity e Ease of use Training time style and detail of help system Reliability Mean time to failure probability of unavailability rate of failure availability e Robustness Time to restart after failure percentage of events causing failure probability of data cor 43 Requirements Capture ruption on failure e Portability Percentage of target dependent code classes number of target systems To this we should add sections on environment temperature hu
299. l non functional requirements in a supplementary requirements specification In any iterative development process we will prioritize and early iterations will focus on capturing the key behavior of the most important use cases Most modern requirements capture processes agree that it is essential that the authoritative representat ive of the customer is fully involved throughout the process 4 3 Output of the Requirements Capture Pro cess 4 3 1 Almost all the output of the requirements capture process is documentary The only diagram is the use case diagram showing the relationships between use cases and actors Vision Document 34 4 3 2 Requirements Capture Typical sections of this document would be as follows Summary A statement of the context problem and solution goals Goals What are we trying to achieve and how do we wish to achieve it Market Context or Contractual Arrangements For a market led development this should indicate target markets competitive differentiators compelling events and so forth For a contractual devel opment this should explain the key contractual drivers Stakeholders The users in the widest sense of the system Many of these will map in to actors or control equipment that maps into actors Key Features At the very highest level what are they key functional aspects of the problem desired solution These will largely map down to the use cases It is helpful to give som
300. le selection dialog see Figure 10 2 The file selection dialog for Open Project Figure 10 2 The file selection dialog for Open Project 83 The Menu bar Ww Open Project Lookin models v E E E E i li test zargo 2 E Artifacts UseCase uml i The Shapes Project zargo My Recent Lf Build House zargo Documents classpackages zargo Lf critic madel zargo 8 diagrams zargo Desktop El discrimi discriminator example zargo M 8 requirements tutorial zargo cJ Li state artifacts zargo My Documents File name test zargo Open 33 Files of type ArgoUML file zargo uml xmi xml zip v The main body of the dialog is a text area with a listing of all directories and files in the currently selec ted directory which match the current filter see below Navigating in the directory tree is possible by selecting a directory in the drop down selector at the top of this dialog Navigating deeper in the tree may be done by double clicking button 1 on the directory shown in the main text area In the lower portion of the dialog is a text box labeled File name for the name of the file to be opened The file name may be typed directly in here or selected from the directory listing above using button 1 click Beneath this is a drop down selector labeled Files of type to specify a filter on the files to be shown in the directory listing Only files that match
301. lemented now 4 5 1 4 Stakeholders Among the stakeholders for this system are the Engineering Department the Maintenance Department and the Central Computer Facility The full list of these stakeholders and the specific individuals repres enting them are Engineering Bunny Bugs Maintenance Hardy Oliver Computer Facility Laurel Stanley e Chief Executive Officer Hun Atilla The Marketing Harry Oil Can 4 5 1 5 Key Features Cash deposit cash withdrawal and account inquiries by customers Customers include people who have accounts at the owning bank as well as people who wish to make withdrawals from accounts in other banks or from credit card accounts Maintenance of the equipment by the bank s engineers This action may be initiated by the engineer on a routine basis It may also be initiated by the equipment that can call the engineer when it detects an in ternal fault Unloading of deposits and loading of cash by officials of the local bank branch These actions occur either on a scheduled basis or when the central computer determines that the cash supply is low or the deposit receptacle is liable to be getting full An audit trail for all activities will be maintained and sent periodically to the bank s central computer It will be possible for the maintenance engineer to save a copy of the audit trail to a diskette for transport ing to the central computer Both dialup and leased line support will be pr
302. les Text area To be written Links Text area To be written 252 Class Diagram Artifact Reference 18 12 Association End Two or more association ends are associated with each association see Section 17 5 Association Within the UML metamodel AssociationEnd is a sub class of ModelElement The association end has no direct access on any diagram for binary associations The ends of an N ary association may be selected by clicking on the line in the diagram The stereotype name and multiplicity are shown at the relevant end of the parent association see Figure 17 1 Possible artifacts on a use case diagram Where shared or composite aggregation is selected for one association end the opposite end is shown as a solid diamond composite aggregation or hollow diamond shared aggregation Tip Although you can change attributes of association ends when creating a use case model this is often not necessary Many of the properties of an association end relate to its use in class diagrams and are of limited relevance to use cases The most useful attributes to con sider altering are the name used as the role name and the multiplicity Note ArgoUML does not currently support showing qualifiers on the diagram as described in the UML 1 3 standard 18 12 1 Association End Details Tabs The details tabs that are active for associations are as follows ToDoItem Standard tab Properties See Sec
303. lick Within the hierarchical display elements which have sub hierarchies are indicated by T when the hierarchy is hidden and j when the hierarchy is open Button 1 click over the name of any diagram artifact will cause the diagram to be selected and displayed in the editing pane Its details will also be displayed in the details pane Button 1 click over the name of any artifact other than a diagram in the main area of the explorer will cause it to be selected and its details shown in the details pane If the artifact is part of a diagram cur rently displayed in the editing pane it will be highlighted there ae Note ce If the artifact is part of a diagram other than that currently displayed in the Editing Pane there will be no change of diagram in the Editing Pane Where button 2 click has been used to bring up a context sensitive pop up menu see below button 1 click is used to select the menu entry required button 1 click outside the menu area will remove it 11 2 2 Button 1 Double Click This has the effect of a button 1 single click and if the tree item was not a leaf it will toggle the hier archy open or close 11 2 3 Button 1 Motion Button 1 motion means that you pick up one or more modelelements and drag them to a new location Dropping the modelelement somewhere causes ArgoUML to execute some function that depends on where you drop the modelelements 11 2 3 1 From Explorer to Explorer Releasing the mous
304. licking in the close button in the window border The effect is the same as selecting Cancel Figure 10 11 The save changes dialog Save changes to Untitled 9 Save changes to Untitled 10 4 The Edit Menu This menu provides support for selecting artifacts on the editing pane removal of artifacts from dia grams and the model and control of user settings 10 4 1 Select This sub menu provides for selection of items on the editing menu It has the following entries e Select All shortcut Ctrl A Selects all artifacts on the current pane or in the current field The exact behaviour depends on the current pane ie the last one you clicked in explorer pane editing pane to do pane details pane One rule applies in all cases though the selection on the dia gram editing pane and in the explorer are always synchronised If the editing pane is the current pane First everything in the explorer and on the current dia gram is deselected and then everything that is on the current diagram is selected and if the same items apear in the explorer then they are also there indicated as selected because they are always synchronised If the explorer pane is the current pane All visible items in the explorer pane are selected and non visible items are deselected If the to do pane is the current pane All visible items in the to do pane are selected and non visible items are deselected In fact this works the same as for
305. lifiers on the diagram as de scribed in the UML 1 4 standard 308 Collaboration Diagram Artifact Reference d Caution An association end role should have the same or stricter attribute values than its base as sociation end In particular its navigability should be no more general There is as yet no critic in ArgoUML to offer advice on this rule 21 4 1 Association End Role Details Tabs The details tabs that are active for association end roles are as follows ToDoItem Standard tab Properties See Section 21 4 2 Association End Role Property Toolbar and Section 21 4 3 Property Fields For Association End Role below Documentation Standard tab Source Standard tab There is no code generated for an association end role Tagged Values Standard tab In the UML metamodel AssociationEndRole has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the association end role is redundant it can be formally derived from other elements or false meaning it cannot r Tip Derived association end roles still have their value in analysis to introduce useful names or concepts and in design to avoid re computation However the tag only makes sense for an association end role if it is also applied to the parent associ ation role Note The UML Element metaclass from which all other artifacts are derived includes the tagged element document
306. llows you to create any one of the seven UML diagram types class use case state activity collaboration deployment and sequence supported by ArgoUML State and activity diagrams can only be created when a class or actor is selected even though the rel evant menu entries are not grayed out if this has not been done nothing will happen under this cir cumstance Arrange menu This allows you to align distribute reorder and nudge artifacts on a diagram and set the layout strategy for the diagram Generation menu This allows you to generate Java code for selected classes or all classes Critique menu This allows you to toggle the auto critique on and off set the level of importance of design issues and design goals and browse the critics available 21 UML Based OOA amp D Tools menu This menu is permanently grayed out unless there is some tool available in your version of ArgoUML Help menu This menu gives access to details of those who authored the system and where addition al help may be found File Toolbar This toolbar contains some of the tools from the File menu Edit Toolbar This toolbar contains some of the tools from the Edit menu View Toolbar This toolbar contains some of the tools from the View menu Create Diagram Toolbar This toolbar contains some of the tools from the Create Diagram menu 3 4 2 6 The Mouse The mouse and mouse buttons or their equivalent with alternative tracking devices are
307. lorer perspective Below that there is a drop down to select the ordering of the atifacts within the hierarchy The two pos sibilities are Order by Type Name and Order by Name The former groups all items per type and sorts them per group alphabetically on the name The lattter simply sorts on name only The following explorer perspectives may be selected in the drop down at the top Package centric the default The exploring hierarchy is organized by package hierarchy The top level shows the model Under this are all the top level packages in the model and all the artifacts that are directly in the namespace of the model Beneath each package are all the artifacts that sit within the namespace of that package including any further sub packages which in turn have their own sub hierarchies Class centric Shows classes in their package hierarchy as well as datatypes and use case dia gram elements Similar to the Package centric view but it doesn t show connecting or associating elements e Diagram centric In this view the top level comprises all the diagrams in the model Beneath each diagram is a flat listing of all the artifacts on the diagram Artifacts that have sub artifacts that do not appear on the diagram have their own hierarchy for example attributes and operations of classes e Inheritance centric In this view the top level shows the model Beneath this are all artifacts that have no generalization in the model
308. loyment Diagram To be written To be written 6 15 9 The System Architecture To be written To be written 69 Chapter 7 Code Generation Reverse Engineering and Round Trip Engineering 7 1 Introduction We now have our design fully specified With the right simulator we could actually execute the design and see if it works ArgoUML does not provide such functionality but this functionality has been provided in alternative tools ArgoUML does allow you to generate code from the design in several different programming languages We most likely already in the design had a programming language in mind because some of the design considerations are to care for a specific language The output of this process is the set of files that constitute the program that solves the problem Once again the recursive and iterative nature of our process means we will come back to the Build phase many times in the future There is also another side to this and that is the reverse engineering side If we happen to have an old program that we would like to examine then we could take the files and reverse engineer them to create a design This can be used when trying to understand some not so well documented program or as a quick start for the design work The process of going back and forth between doing changes in the design followed by a code generation and then doing changes in the code followed by a reverse engineering using for
309. lue with actors The stereotypes machine organization person and singleton are probably of most use However they are not provided by default with ArgoUML Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text box Records the namespace for the actor This is the package hierarchy Modifiers Check box with entries Abstract Leaf and Root Abstract is used to declare that this actor cannot be instantiated but must always be special ized d Caution While actors can be specialized and generalized it is not clear that an abstract act or has any meaning Perhaps it might be used to indicate an actor that does not it self interact with a use case but whose children do leaf indicates that this actor can have no further children while Root indicates it is a top level actor with no parent Generalizations Text area Lists any actor that generalizes this actor Button 1 double click navigates to the generalization and opens its property tab Specializations Text box Lists any specialized actor i e for which this actor is a generalization The specialized actors can communicate with the same use case instances as this actor Button 1 double click navigates to the generalization and opens its property tab Association Ends Text area Lists any association ends of associations connected to this actor Butto
310. lysis to introduce useful names or concepts 17 9 2 Extend Property Toolbar By GO up Navigate up through the package structure of the model For a extend this will be the package con 220 Use Case Diagram Artifact Reference taining the extend extension point This creates a new use case extension point within the namespace of the current extend relationship with the current extend relationship as its first extending relationship Tip While it is perfectly valid to create extension points from an extend relationship the created extension point will have no associated use case it can subsequently be set up It would be more usual to instead create the extension point within a use case and sub sequently link to it from an extend relationship see Section 17 9 3 Property Fields For Extend below gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected extent relationship navigating immediately to the properties tab for that stereotype Tif Delete This deletes the selected extend relationship from the model e Warning This is a deletion from the model not just the diagram To delete a extend from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 17 9 3 Property Fields For Extend Name Text box The name of the extend relationship Tip It is quite common to leave extends unnamed in use
311. m which may be dragged to form a realization rela tionship the target being the realizing class Realization Add a realization between a class and an interface selected using button 1 mo tion from the realizing class to the realized interface Dependency Add a dependency between two artifacts selected using button 1 motion from the dependent artifact There are also 2 special types of dependency offered here Permission and Usage A Permission is created by default with stereotype Import and is in u used to import elements from one package into another Attribute Add a new attribute to the currently selected class The attribute is given the de aaa fault name newAttr of type int and may be edited by button 1 double click and using the key board or by selecting with button 1 click after the class has been selected and using the property tab T Note This tool is grayed out except when a class is selected Operation Add a new operation to the currently selected class or interface The operation is L given the default name newOperation with no arguments and return type void and may be ed ited by button 1 double click and using the keyboard or by selecting with button 1 click after the class has been selected and using the property tab T Note This tool is grayed out except when a class or interface is selected EHAssociation Class Add a new association class between two artifacts selec
312. me Parameter Text area with entries for all the parameters of the operation see Section 18 8 Parameter A new operation is always created with one new parameter return to define the return type of the operation Button 1 double click on any of the parameters navigates to that parameter Button 2 click brings up a pop up menu with two entries Move Up Only available where there are two or more parameters and the parameter selected 242 Class Diagram Artifact Reference is not at the top It is moved up one position Move Down Only available where there are two or more parameters listed and the parameter selected is not at the bottom It is moved down one position Raised Signals Text area with entries for all the signals see Section 18 9 Signal that can be raised by the oper ation d Caution ArgoUML at present V0 18 has limited support for signals In particular they are not linked to signal events that could drive state machines Button 1 double click on any of the signals navigates to that parameter 18 8 Parameter A parameter is a variable that can be passed In the UML metamodel it is a sub class of ModelEle ment A parameter is represented within the operation declaration in the operation compartment of a class as follows name type name is the name of the parameter type is the type UML datatype class or interface of the parameter The exception is any parameter repr
313. me of the actor in the editing pane or just typing on the keyboard when an actor is selected will allow the name to be edited directly This is a convenient way to enter a name for a new actor Having created the actor you will see it appear in the explorer the upper left quadrant of the user screen This shows all the artifacts created within the UML design A drop down at the top of the ex plorer controls the ordering of artifacts in the explorer The most useful are the Package centric default and Diagram centric The latter shows artifacts grouped by the diagram on which they appear 4 4 2 Use Cases The procedure for adding use cases is the same as that for adding actors but using the use case icon on the editing pane toolbar Ca By default use cases in ArgoUML do not display their extension points for use in extend relationships You can show the extension point compartment in one of two ways 1 Select the use case in the editing pane with button 1 click then select the Style tab in the details pane and button 1 clickonthe Display Extension Points check box 44 Requirements Capture 2 Use button 2 click over the use case in the editing pane to display a context sensitive pop up menu and from that choose Show Show Extension Point Compartment The same approaches can be used to hide the extension point compartment 4 4 2 1 Adding an Extension Point to a Use Case There are two ways to add an ex
314. meaning the association is redundant it can be formally derived from other elements or false meaning it cannot or Note Derived associations still have their value in analysis to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 18 11 3 Association Property Toolbar By GO up Navigate up through the package structure of the model For an association this will be the package containing the association gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected association navigat ing immediately to the properties tab for that stereotype Tif Delete This deletes the selected association from the model g Warning This is a deletion from the model not just the diagram To delete an association from the diagram but keep it within the model use the main menu Remove From Dia gram or press the Delete key 18 11 4 Property Fields For Association 251 Class Diagram Artifact Reference Name Text box The name of the association By convention association names start with a lower case let ter with bumpy caps used to indicate words within the name thus salesHandling a Note LE g ArgoUML does not enforce any naming convention for associations 4 Tip Al
315. mented in V0 22 of ArgoUML 10 3 14 Properties This menu entry brings up a dialog box which allows the user to set various options of the currently loaded project All settings in this dialog are stored in the project file together with the model Figure 10 9 The dialog for Properties Notation The User tab Wf File Properties User Full Name Michiel van der Wulp Notations Email Address mvw tigris org Project Description Last Saved with ArgoUML 0 22 beta2 Cancel Apply Reset To Default In the User tab you are able to set the following fields The first field contains the name of the author or responsible for the current project By default the name and email of the creator are filled in so probably you will never need to edit this but it is pos sible The Project Description field may contain any text that you need to describe the project By default it is empty The Last saved with ArgoUML field indicates the version of ArgoUML that was used to save this project the last time it was saved This may be usefull if multiple designers have different versions 91 The Menu bar of ArgoUML which may not be backwards compatible all the time Figure 10 10 The dialog for Properties Notation The Notations tab wf File Properties User Notation Language UML 1 4 Notations C Use quillemots Show visibility Show multiplicity Show init
316. met Note Transitions to and from an ObjectFlowState are dashed to distinguish object flow from control flow 22 5 Guard This artifact is described in the context of statechart diagrams see Section 20 10 Guard 22 6 Initial State This artifact is described in the context of statechart diagrams see Section 20 12 Initial State 22 7 Final State This artifact is described in the context of statechart diagrams see Section 20 13 Final State 22 8 Junction Decision This artifact is described in the context of statechart diagrams see Section 20 14 Junction 22 9 Fork This artifact is described in the context of statechart diagrams see Section 20 16 Fork 319 Activity Diagram Artifact Reference 22 10 Join This artifact is described in the context of statechart diagrams see Section 20 17 Join 22 11 ObjectFlowState To Be Written 320 Chapter 23 Deployment Diagram Artifact Reference 23 1 Introduction This chapter describes each artifact that can be created within a Deployment Diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram There is a close relationship between this material and the Properties Tab of the Details Pane see Sec tion 13 3 Properties Tab That section covers Properties in general in this chapter they are linked to specific artifacts Within ArgoUML the deploym
317. midity lightening protection status and standards compliance 4 4 Using Use Cases in ArgoUML ArgoUML allows you to draw use case diagrams When you create a new project it has a use case dia gram created by default named use case diagram 1 Select this by button 1 click on the diagram name in the explorer the upper left quadrant of the user screen New use case diagrams can be created as needed through Create Diagram on the main menu bar or on the Create Diagram Toolbar They are edited in the editing pane the upper right quadrant of the user screen 4 4 1 Actors To add an actor to the diagram use button 1 click on the actor icon on the editing pane toolbar X and then button 1 click at the location where you wish to place it The actor can be moved subsequently by button 1 motion i e button 1 down over the actor to select it move to the new position and button 1 release to drop the actor in place Multiple actors can be added in one go by using button 1 double click on the actor icon Each sub sequent button 1 click will drop an actor on the diagram A button 1 click on the select icon k will stop adding actors The actors name is set in its property panel First select the actor if not already selected on the editing pane using button 1 click Then click on the Properties tab in the details pane The name is entered in the name field and will appear on the screen As a shortcut double button 1 click on the na
318. model Guard has no standard tagged values defined 20 10 2 Guard Property Toolbar By GO up Navigate up through the package structure ee w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected guard navigating immediately to the properties tab for that stereotype Tif Delete from Model This deletes the guard from the model E Warning This is a deletion from the model not just the diagram 20 10 3 Property Fields For Guard Name Text box The name of the guard By convention guard names start with a lower case letter and use 291 Statechart Diagram Artifact Reference bumpy caps to divide words within the name Note ArgoUML does not enforce this naming convention Transition Text box showing the transition that owns this guard Button 1 double click on the transition navigates to that transition Expression Text box The expression that defines the guard Language Text box This indicates that the expression is written in a particular interpretation language with which to evaluate the text 20 11 Pseudostate A pseudostate encompasses a number of different transient vertices on a state machine diagram They are used typically to connect multiple transitions into more complex state transitions paths For ex ample by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate we get a compound transiti
319. model completely If the item to be deleted is also present on another diagram than the current one the dialog box from fig ure x appears Figure 10 12 The dialog for confirmation of Remove from Model Are you sure e Are YOU sure you want ta remove this element It wil be removed trom all diagrams ves 10 4 4 Configure Perspectives This menu item invokes the same dialog as the button at the top of the explorer See Section 11 5 Configuring Perspectives for a complete description 10 4 5 Settings This menu entry brings up a dialog box which allows the user to set various options that control the be havior of ArgoUML see Figure 10 13 The dialog for Settings Preferences 95 The Menu bar Figure 10 13 The dialog for Settings Preferences WM Settings Preferences Show Splash Panel Environment User Preload Common Classes Appearance Notations Modules Strip non standard diagrams from XMI File during import Reload last project on startup C Generator UML Profile File lorg argouml model mdr mof default url14 xri The options that can be set up on the various tabs are described in the following sections For each tab there are three buttons at the bottom of the dialog box OK Activating this button button 1 click applies the chosen settings and exits the dialog Cancel Selecting this button button 1 click exits the dialog witho
320. mplain about signal names that do not have an initial upper case letter Stereotype Drop down selector Signal is provided by default with the UML standard stereotypes for its parent in the UML meta model Classifier metaclass powerType process thread and utility Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows changing the namespace for the signal This is the package hierarchy of the signal Contexts Text area Lists all the contexts defined for this signal Button 1 double click navigates to the selec ted context button 2 click brings up a pop up menu with one entry e Add Add a new context This opens the Add Remove Contexts dialog box see figure below which allows choosing between all possible operations and adding them to the selected list Figure 18 3 The add remove context dialog box 248 Class Diagram Artifact Reference ef Add Remove Contexts Choices Selected E addListener ES new Operation removeListener 18 10 Reception to be written A reception is 18 11 Association An association on a class diagram represents a relationship between classes or between a class and an interface On a usecase diagram an association binds an actor to a usecase Within the UML metamodel Association is a sub class of both Relatio
321. n Text box This is used to identify the action that generated the stimulus d Caution The current release of ArgoUML only implements actions as textual descriptions As a practical convention it is suggested that call actions are shown as the name of the operation generating the action with any arguments in parentheses and that send ac tions are shown as the name of the signal generating the action with any arguments in parentheses Return actions should be shown as the expression for the value they re turn or empty otherwise Create and destroy actions should be left empty since they are implied by their representation Stereotype Drop down selector Stimulus has no stereotypes by default in the UML standard but ArgoUML provides the stereotypes machine organization and person d Caution ArgoUML also provides the stereotype realize for stimuli This appears to be an error since this stereotype properly belongs to the Abst ract ion metaclass Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 18 4 Stereotype Sender Text box Identifies the instance which sent this stimulus Button 1 click navigates to the sender instance button 2 gives a pop up menu with one entry Open Navigate to the selected sender instance 273 Sequence Diagram Artifact Reference Receiver Text box Identifies the instance which receives this stimulu
322. n 1 click The property tab can then be selected in the details pane 2 Otherwise select the use case and its property tab in the details pane A button 1 click on the desired entry in the Extension Points field will bring up the property tab for the extension point in the details pane The name and location fields of the extension point may then be edited As a shortcut where the extension point compartment is displayed double click on the extension point allows text to be typed in directly This is parsed to set name and location for the extension point Extension points may be deleted or their ordering changed by using the button 2 pop up menu over the Extension Points field in the use case property tab Having created an extension point it will appear in the explorer upper left quadrant of the user screen Extension points are always shown in a sub tree beneath their owning use case 45 Requirements Capture 4 4 3 Associations To join a use case to an actor on the diagram use button 1 click on the association icon on the editing pane toolbar Hold button 1 down at the use case move to the actor and release button 1 or al ternatively start at the actor and finish at the use case This will create a straight line between actor and use case You can segment the line by holding down button 1 down on the line and moving before releasing A vertex will be added to the line which you can move by button
323. n 1 double click navigates to the selected entry 17 3 Use Case A use case represents a complete meaningful chunk of activity by the system in relation to its external users actors human or machine It represents the primary route through which requirements are cap tured for the system under construction Within the UML metamodel use case is a sub class of classifier 209 Use Case Diagram Artifact Reference The use case icon is an oval see Figure 17 1 Possible artifacts on a use case diagram It may be split in two with the lower compartment showing extension points d Caution By default ArgoUML does not show the extension point compartment It may be revealed by the context sensitive Show menu using button 2 click or from the Presentation tab 17 3 1 Use Case Details Tabs The details tabs that are active for use cases are as follows ToDoItem Standard tab Properties See Section 17 3 2 Use Case Property Toolbar and Section 17 3 3 Property Fields For Use Case below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The Fill color is used for the use case oval The Display Extension Points check box is used to control whether an extension point compartment is displayed Source Standard tab It would not be usual to provide any code for a use case since it is primarily a vehicle for capturing requirements about the system under const
324. n ArgoUML To be written 66 6 9 1 Statechart Diagrams To be written see 66 6 9 2 States To be written sess eee 66 6 9 3 Transitions To be written 00 0 0 ccc ceccec ec ee cece ec eeececeeeeeneaeeneneenens 66 6 9 4 Actions To be written sss emen 66 6 9 5 Advanced Statechart Diagrams To be written ss uses 66 6 10 Activity Diagrams To be written sssss cece sean een eens 67 6 10 1 The Activity Diagram To be written ese 67 6 11 Creating Activity Diagrams in ArgoUML To be written 67 6 11 1 Activity Diagrams To be written eA 67 6 11 2 Action States To be written sssssesssee 67 6 12 Deployment Diagrams To be written eA 67 6 12 1 The Deployment Diagram To be written esee esee 67 6 13 Creating Deployment Diagrams in ArgoUML To be written 67 6 13 1 Nodes To be written csse e 67 6 13 2 Components To be written esses 68 6 13 3 Relationships between nodes and components To be written 68 6 14 System Architecture To be written sess 68 6 15 Case Study To De written areais ee meet potete ee vex tie ee ne eee e tpe vede etr eos 68 6 15 1 CRC Cards To be written ssssssessee m 68 6 15 2 Packages Tobe Wri
325. n ArgoUML will show stereotypes next to the icons of the modelelements in the Explorer i e the tree structure at the left hand side Default shadow width setto 1 by default ArgoUML is able to draw all elements on a dia gram with a shadow Use this setting to adjust the size of the shadow used when the modelelement is created The details tab Presentation allows to set the shadow per modelelement after they are created 10 4 5 6 Modules Tab This tab shows a list of modules that are installed which may be enabled or disabled Since this is a new concept for ArgoUML it currently contains a list of modules that can not be removed and a button to test the concept Pressing this button adds a useless menu item on the Tools menu nothing else Notice also that this is a new modules concept so the old Pluggable modules do not work this way and are not listed 10 4 5 7 Extra Tabs added by Plugins A plug in module has the possibility to add extra tabs One example is C it adds the following tab Figure 10 18 The dialog for Settings C 101 The Menu bar i Settings Preferences Indentation Environment C verbose comments User Appearance Notations Modules C Generator C Newline before curly brace Generate section comments to protect code Normal v 10 5 The View Menu This menu is used for actions that affect how the various panes are viewed 10 5 1 Goto Diagram
326. n example might be a database of uni versity courses and the students that attend them There is a whole part relationship between courses and 187 The Critics students However there is no lifetime relationship between students and course a student continues to exist even after a course is finished and the relationship is many to many 15 17 4 Aggregate End Role in 3 way or More Associ ation Three way or more associations can not have aggregate ends roles This a well formedness rule of the UML 1 4 standard Aggregation and composition are used to indicate whole part relationships and by definition can only apply to binary associations between artifacts To fix this manually select the association and set the aggregation of each of its ends roles to none using the button 2 pop up menu or the property sheet 15 17 5 Wrap DataType This critic is discussed under an earlier design issues category see Section 15 3 1 Wrap DataType 188 Part 3 Model Reference Chapter 16 Top Level Artifact Reference 16 1 Introduction This chapter describes each artifact that can be created within ArgoUML The chapter covers top level general artifacts The following chapters see Chapter 17 Use Case Diagram Artifact Reference through Chapter 23 Deployment Diagram Artifact Reference cover each of the ArgoUML diagrams There is a close relationship between this material and the properties tab
327. n on the Class Diagram tool bar Figure 6 3 Generalization on the Class Diagram tool bar lt lt nterface gt gt T estinte face zxInterface 7 move the mouse pointer to the subinterface press the left mouse button and drag the generalization to the superinterface where you release the mouse button Figure Figure 6 4 Generalization between two Interfaces shows how your diagram should look now Figure 6 4 Generalization between two Interfaces 63 Design lt lt Interface gt gt Testinterface Z 44 29 4 A ay 1 Ej 1 Po GU lt lt Interface gt gt Anotherlnterface public interface AnotherInterface extends TestInterface By clicking on the subinterface and the source tab properties pane and then selecting Java Notation for the source tab you can see that the interface actually extends it s superinterface 6 5 3 2 Stereotypes To be written To be written 6 6 Sequence and Collaboration Diagrams To be written Note Sequence diagrams does not work in ArgoUML version 0 14 To be written 6 6 1 More on the Sequence Diagram To be written To be written Design 6 6 2 The Collaboration Diagram To be written To be written 6 6 2 1 Messages To be written To be written 6 6 2 2 Actions To be written To be written 6 6 3 Advanced Collaboration Diagrams To be written To be written 6 7 Creating Collaboration
328. n scalar attributes GP Note ArgoUML presents a number of predefined ranges for multiplicity for easy access The user may also enter any user defined range that follows the UML syntax such as 37107 The value 1 1 is equivalent to the default exactly one scalar instance The selec tion 0 1 indicates an optional scalar attribute Type Drop down selector The type of this attribute This can be any UML Classifier although in practice only Class DataType or Interface make any sense GP Note ia A type must be declared it can be void By default ArgoUML supplies int as the type Navigate Type icon This will navigate to the property panel for the currently selected type see Section 18 5 Class Section 18 3 Datatype and Section 18 15 Interface Initial Value Text box with drop down This allows you to set an initial value for the attribute if desired this is optional The drop down menu provides access to the common values 0 1 2 and null 237 Class Diagram Artifact Reference d Caution Any constructor operation may ignore this initial value Visibility Radio box with entries public private protected and package public The attribute is available to any artifact that can see the owning class private The attribute is available only to the owning class and any inner classes protected The attribute is available only to the owning class or artifacts that are subcl
329. n specified for the given class Such classes may be cre ated to specify static attributes and methods but by convention should then be given the stereotype utility 15 5 3 Add a Constructor to a Class You have not yet defined a constructor for class class Constructors initialize new instances such that their attributes have valid values This class probably needs a constructor because not all of its attributes have initial values 176 The Critics Defining good constructors is key to establishing class invariants and class invariants are a powerful aid in writing solid code To fix this add a constructor manually by clicking on class in the explorer and adding an operation us ing the context sensitive pop up menu in the property tab or select class where it appears on a class dia gram and use the Add Operation tool In the UML 1 4 standard a constructor is an operation with the stereotype create Although not strictly standard ArgoUML will also accept Create as a stereotype for constructors By convention in Java and C a constructor has the same name as the class is not static and returns no value ArgoUML will also accept any operation that follows these conventions as a constructor even if it is not stereotyped create d Caution Operators are created in ArgoUML with a default return parameter named return You will need to remove this parameter to meet the Java C convention 15 5 4 Red
330. n those things needed for the modeling effort It also contains fin ancial and scheduling pertinent information The following sections are those parts of the Vision Docu ment spelled out in Section 4 3 1 Vision Document above In practice this format need not be fol lowed religiously but is used here for consistency Summary The company wishes to produce and market a line of ATM devices The purpose of this project is to produce the hardware and the software to drive it that are both maintainable and robust 49 Requirements Capture 4 5 1 2 Goals To produce better designed products based on newer technology Follow the MDA philosophy of the OMG by producing first a Platform Independent Model PIM As current modeling technology does not admit of maintaining the integrity of the connection between the PIM and Platform Specific Models PSMs the PIM will become comparatively stable before the first iteration of the PSM is produced The software platform will be Java technology The system will use a simple userid from ATM card and password or PIN mechanism 4 5 1 3 Market Context Equipment currently on the market is based on older technology for both hardware and software This technology has not reached the end of its useful life making it unlikely that the vendors of that gear are going to update it in the near future On the other hand newer technology is available that would put us at a competitive advantage if imp
331. nal branching Any choices in flows are handled by specifying another alternate flow that takes over at the choice point It is important to remember we are specifying behavior here not programming it A flow is specified as a series of numbered steps Each step must involve some interaction with an actor or at least generate a change that is observable externally by an actor Requirements capture should not be specifying hidden internal behavior of a system For example we might give the following sequence of steps for the basic flow of the use case Withdraw Cash in our ATM example 1 Customer indicates a receipt is required 2 Customer enters amount of cash required 3 ATM verifies with the central computer that the customer can make this withdrawal 4 ATM dispenses cash to the customer 5 ATM issues receipt to customer Remember this is a sub use case included in the main Use ATM use case which will presumably handle checking of cards and PINs before invoking this included use case l Note Cie The first step is not a condition We take as our basic flow the case where the customer does want a receipt The case where the customer does not want a receipt will be an altern ative flow 4 3 3 2 Specifying the Alternate Flows This captures the alternative scenarios as linear flows by reference to the basic flow Initially we just build a list of the alternate flows A 1 Customer does not require a receipt A 2 Cu
332. name between and g Warning You can edit this entry but it has no effect and when you return to the entry it will be restored to its original value Tagged Values Standard tab In the UML metamodel Stereotype has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the class is redund ant it can be formally derived from other elements or false meaning it cannot g Note This indicates any element with this stereotype has the derived tag set accord 201 Top Level Artifact Reference ingly d Caution Tagged values for a stereotype are rather different to those for elements in the UML core architecture in that they apply to all artifacts to which the stereotype is applied not just the stereotype itself 16 5 2 Stereotype Property Toolbar By GO up Navigate up through the package structure of the model ee Add stereotype This creates a new stereotype see Section 16 5 Stereotype within the model which appears on no diagram navigating immediately to the properties tab for that stereotype Tif Delete This deletes the stereotype from the model 16 5 3 Property Fields For Stereotype Name Text box The name of the stereotype There is no convention for naming stereotypes beyond start ing them with a lower case letter Even the standard UML stereotypes vary between all lower case e g metamodel bumpy caps e g system
333. navigating im mediately to the properties tab for that stereotype Tif Delete This deletes the link from the model Ea Warning This is a deletion from the model not just the diagram To delete an link from the dia gram but keep it within the model use the main menu Remove From Diagram or press the Delete key 19 9 3 Property Fields For Link Name Text box The name of the link By convention link names start with a lower case letter and use bumpy caps to divide words within the name a Note Ce E ArgoUML does not enforce this naming convention Stereotype Drop down selector Link has no stereotypes by default in the UML standard Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 18 4 Stereotype Namespace Text box Records the namespace for the link This is the package hierarchy Connections List box Lists the connections of the link i e the link ends Button 1 double click on the entry will navigate to the link end 277 Chapter 20 Statechart Diagram Artifact Reference 20 1 Introduction This chapter describes each artifact that can be created within a statechart diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram There is a close relationship between this material and the Properties Tab of the Details Pane see Sec tion 13 3 Properties
334. nconvenience that the alternative representation of an interface as a small circle is not suppor ted 23 2 Node A node is a run time physical object on which components may be deployed In the UML metamodel it is a sub class of Classifier A node is represented on a class diagram as a three dimensional box labeled with its name 23 2 1 Node Details Tabs The details tabs that are active for nodes are as follows ToDoItem Standard tab Properties See Section 23 2 2 Node Property Toolbar and Section 23 2 3 Property Fields For Node be 322 Deployment Diagram Artifact Reference low Documentation Standard tab Presentation Standard tab The Bounds field defines the bounding box for the node on the diagram o Warning Beware that in the 0 18 release of ArgoUML the bounding box just refers to the front face of the cube This means that the three dimensional top and side may be ignored for example when determining the limits of a diagram for saving graphics Source Standard tab but with no contents d Caution A node should not generate any code so having this tab active is probably a mistake Tagged Values Standard tab In the UML metamodel Node has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroy
335. nd Since these are completely equal to the fields of an association end they are not repeated here 21 5 Message A message is a communication between two instances of an association role on a specification level col laboration diagram It describes an action which will generate the stimulus associated with the message On a collaboration diagram a message is associated with an association role In the UML metamodel Message is a sub class of ModelElement The message is represented on a collaboration diagram in ArgoUML by its sequence number separated by acolon from the expression defining the associated action It is accompagnied by an arrow pointing in the direction of the communication i e the direction of the AssociationRole By convention the name of a message is not shown on the diagram Instead the diagram displays the message sequence number either as an integer or as a decimal number to show hierarchy e Warning The current release of ArgoUML does not retaining message positioning after reloading the project i e as if the positions were not stored in the project file 21 5 1 Message Details Tabs The details tabs that are active for messages are as follows ToDoItem Standard tab Properties See Section 21 5 2 Message Property Toolbar and Section 21 5 3 Property Fields For Message below Documentation Standard tab Presentation Standard tab The values for the bounds of the message define the boun
336. nd composition and all these three can be bidirectional or unidirectional Generalization Add a generalization between two artifacts selected using button 1 from the child to the parent 136 The Editing Pane Dependency Add a dependency between two artifacts selected using button 1 motion from the dependent artifact e _ Add Message Add a message to the selected association role g gt Note This tool is grayed out except when an association role is selected 12 3 8 Statechart Diagram Specific Tools Eleven tools are provided specific to UML artifacts on statechart diagrams The detailed properties of these artifacts are described in the section on statechart diagram artifacts see Chapter 20 Statechart Diagram Artifact Reference 5 Simple State Add a simple state to the diagram e Composite State Add a composite state to the diagram All artifacts that are subsequently posed on the diagram on top of the composite state will form part of that composite state a Transition Add a transition between two states selected using button 1 motion from the originating state to the receiving state Synch State Add a synchstate to the diagram ue Submachine State Add a submachinestate to the diagram x ie Stub State Add a stubstate to the diagram Initial Add an initial pseudostate to the diagram d Caution There is nothing to stop you adding more than one initial state to a diag
337. ndency and through that Relation ship An abstraction with stereotype realize is represented on a class diagram as a dotted line with a solid white head at the specifying end Caution All other stereotypes of abstraction should be represented using an open arrow head but this is not supported by ArgoUML 18 16 1 Abstraction Details Tabs The details tabs that are active for abstractions are as follows ToDoItem Standard tab Properties See Section 18 16 2 Abstraction Property Toolbar and Section 18 16 3 Property Fields For Ab straction below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab am Note The values for the bounds of the abstraction are downlighted since the association is tied to particular artifacts Source Standard tab This contains the single downlighted text N A Tagged Values Standard tab In the UML metamodel Abstraction has the following standard tagged values defined derived from the superclass ModelElement Values true meaning the abstraction is redundant 1t can be formally derived from other elements or false meaning it cannot Note Derived abstractions still have their value in analysis to introduce useful names or concepts and in design to avoid re computation 264 Class Diagram Artifact Reference Note The UML Element metaclass from which all other artifacts are derived includes the tagged element
338. ng of the buttons is covered in the chapter on the overall user interface see Section 8 2 General Mouse Behavior in ArgoUML There is no ArgoUML specif ic behaviour for the menu 82 The Menu bar 10 3 The File Menu These are actions concerned with input and output and the overall management of projects and the ArgoUML system 10 3 1 amp New Shortcut Ctrl N This initializes a new project within ArgoUML The project is created without a the name It contains a top level Model named untitledModel and two empty diagrams a class diagram and a use case diagram d Caution untitledModel is not a conventional model name most processes suggest models should be build from lower case letters ArgoUML permits you to use any case letters but a critic will trigger to warn that this is not conventional See Section 16 2 The Model for a discussion of this If the model has been altered as indicated by the in the titlebar of ArgoUML s window then activ ating the New function is potentionally not the user s intention since it will erase the changes Hence a confirmation dialog appears to allow the user to save his work first or cancel the operation completely Figure 10 1 The confirmation dialog for New Save changes to Untitled 9 Save changes to Untitled Yes d 10 3 2 Open Project Shortcut Ctrl O This opens an existing project from a file Selecting this menu option will open a fi
339. nguage UML 1 4 Environment Use quillemots Appearance Show visibility Notations Show multiplicity Modules Show initial value C Generator User C Show properties Show types and parameters Show stereotypes in explorer Default shadow width v Notation Language UML 1 4 by default This feature allows changing the default notation i e language UML Java used on the diagrams for new projects Suppose that a designer indic ates that the default notation of a project is Java When he saves the project the choice for Java is stored inside the project file If someone else is viewing the diagram he will see the Java notation too This person can select the UML notation in the File Notation menu and see all diagrams in UML language See Section 10 3 13 Notation Use guillemots for stereotypes clear by default By default ArgoUML uses pairs of less than and greater than lt lt gt gt characters for stereotypes If this box is checked stereotypes on dia grams are shown between true guillemots This feature is presumably added to ArgoUML because guillemots are poorly supported by various fonts and if they are present then they are quite small and poorly visible Independent of the way they are shown when entering stereotypes you can always type real guille mots if your keyboard supports it or their lt lt gt gt equivalents Show visibility clear by default
340. ning design and wish to start with an OOA amp D pro cess that uses UML notation and ii people interested in modularized code design with a GUI Introduction 1 2 2 Scope The intention is that this document will provide a comprehensive guide enabling designers to use ArgoUML to its full extent It is in two parts e A tutorial manual showing how to work with ArgoUML Acomplete reference manual recording everything you can do with ArgoUML Version 0 22 of the document achieved the second of these In this guide there are some things you will not find because they are covered elsewhere e Descriptions of how ArgoUML works on the inside How to improve ArgoUML with new features and functions e A trouble shooting guide Asummary quick reference to using ArgoUML These are covered in the Developers Cookbook http argouml stats tigris org documentation defaulthtml cookbook the FAQ http argouml tigris org faqs users html and the Quick Guide http argouml tigris org documentation defaulthtml quickguide 1 3 Overview of the User Manual 1 3 1 Tutorial Manual Structure 1 3 2 Chapter 2 Introduction being written provides an overview of UML based OOA amp D including a guide to getting ArgoUML up and running Chapter 4 Requirements Capture through Chapter 7 Code Generation Reverse Engineering and Round Trip Engineering then step through each part of the design process from initial requirements ca
341. nly represents a junction on the diagram as a solid white by default diamond and does not support the black circle symbol for a junction 20 15 Choice Choice is a pseudostate see Section 20 11 Pseudostate which is used to split an incoming transition into multiple outgoing transition segments with different guard conditions Hence a Choice allows a dy namic choice of outgoing transitions The chosen transition is that whose guard is true at the time of the transition if more than one is true one is selected at random A predefined guard denoted e1se may be defined for at most one outgoing transition This transition is enabled if all the guards labeling the other transitions are false F Note This sort of pseudostate was formerly called a Branch by ArgoUML A choice is represented on the diagram as a small solid white by default circle reminiscent of a small state icon 20 16 Fork Fork is a pseudostate see Section 20 11 Pseudostate which splits a transition into two or more con current transitions D Caution The outgoing transitions should not have guards However ArgoUML will not enforce this 296 Statechart Diagram Artifact Reference A fork is represented on the diagram as a solid black by default horizontal bar Tip This bar can be made vertical by selecting the fork and dragging with button 1 one of its corners 20 17 Join Join is a pseudostate see Section 20 11 Pseudosta
342. not your system will be under spe cified and hence will fail when the pre condition is not true Alternatively when you cannot be certain the pre condition is always true you will need to specify a second use case to handle the pre condition being false In the first case pre conditions are a source of problems in the second a source of more work Basic Flow The linear sequence of steps that describe the behavior of the use case in the normal scenario Where a use case has a number of scenarios that could be normal one is arbitrarily selec ted Specifying the basic flow is described in more detail in Section 4 3 3 1 Specifying the Basic Flow below Alternate Flows A series of linear sequences describing each of the alternative behaviors to the ba sic flow Specifying alternate flows is described in more detail in Section 4 3 3 2 Specifying the Alternate Flows Post conditions These would be better named post assumptions This is a statement of any as sumptions that we can make at the end of the use case Most useful where the use case is one of a series of subsidiary use cases that are included in a main use case where they can form the pre conditions of the next use case to be included d Caution Like pre conditions post conditions are best avoided They place a burden on the spe cification of the use case flows to ensure that the post condition always holds They therefore are also a source of problems and extra
343. nship and General izablel Element The association is represented as a solid line connecting actor and usecase or class or interface see Fig ure 18 1 Possible artifacts on a class diagram The name of the association and any stereotype ap 249 Class Diagram Artifact Reference pear above the line ArgoUML is not restricted to binary associations See Section 18 11 1 Three way and Greater Associ ations and Association Classes for more on this Associations are permitted between interfaces and classes but UML 1 3 specifies they must only be navigable toward the interface in other words the interface cannot see the class ArgoUML will draw such associations with the appropriate navigation Associations are often not named when their meaning is obvious from the context Note LER z ArgoUML provides no specific way of showing the direction of the association as de scribed in the UML 1 4 standard The naming should attempt to make this clear The association contains at least two ends which may be navigated to via the association property sheet See Section 18 12 Association End for more information 18 11 1 Three way and Greater Associations and Asso ciation Classes UML 1 3 provides for N ary associations and associations that are governed by a third associative class Both are supported by ArgoUML N ary associations are created by drawing with the association tool from an existing a
344. nsid eration An object that participates in a Collaboration A design visualization theory within cognitive psychology The the ory notes that designers must bridge a gap between their mental model of the problem or situation and the formal model of a solution or system This theory suggests that programmers will benefit from 1 Multiple representations such as program syntactic decomposi tion state transitions control flow and data flow These allow the programmer to better identify elements and relationships in the problem and solution and thus more readily create a map ping between their situation models and working system mod els 2 Familiar aspects of a situation model which improve designers abilities to formulate solutions A Class Diagram constructed during the Analysis Phase to show the main structural components of the problem identified in the Require ments Phase See Chapter 5 Analysis for more information A process within ArgoUML that provides suggestions as to how the design might be improved Suggestions are based on principles within three theories of cognitive psychology reflection in action opportunistic design and comprehension and problem solving A relationship between two Use Cases where the extended Use Case describes a special variant of the extending Use Case A relationship between one generalizing Use Cases and one or more 343 Glossary GUI Hierarchical Statechart Dia
345. nt Location 215 Extension Point Name 214 Extension Point Stereotype 214 External entity 207 F FAQ 2 Feedback 4 File Menu 21 File Toolbar 22 G Generalization 216 Generalization Child 218 Generalization Details Tabs 216 Generalization Discriminator 218 Generalization Name 217 Generalization Namespace 218 Generalization Parent 218 Generalization Powertype 218 Generalization Relationship 343 in a Use Case Diagram 48 Generalization Stereotype 217 Generalizations of Actor 209 of Package 230 of Use Case 212 Generalize a Use Case 40 Generate All Classes 112 Generating Code from Collaboration Diagrams 71 from Interactions 71 from Sequence Diagrams 71 from Statechart Diagrams 71 from the Static Structure 70 Generation Menu 21 GIF 14 Goal of Use Case 40 Goals in the Vision document 35 GUI 344 H Help Menu 22 Hierarchical Statechart Diagram 344 Hierarchical Use Cases 47 Hierarchy of Use Cases 38 Include Relationship 38 222 344 in a Use Case Diagram 47 of Use Case 213 Include Relationship Base 225 Include Relationship Details Tabs 223 Include Relationship Included Use Case 225 Include Relationship Name 224 Include Relationship Namespace 225 Include Relationship Stereotype 224 Included Use Case of Include Relationship 225 Initial Value of Attribute 237 of Parameter 245 Iteration 9 Iterative Design Process 344 Iterative Processes 9 J Jason Robb
346. nto a number of sets on the basis of this value Namespace Tip The empty string is a valid entry and the default for this field The discriminator is only of practical use in cases of multiple inheritance A class diagram example is shown in Figure 17 2 Example use of a discriminator with generalization Here each type of user should inherit from two sorts of user One distinguishing between local or remote user which can be identified by one discriminator and one indicating their function as a user identified by a different discriminator There is little point in using this within a use case diagram Text box Records the namespace for the generalization This is the package hierarchy Parent Text box Shows the use case or actor that is the parent in this relationship i e the more general end of the relationship Button 1 Double Click on this entry will navigate to that use case or actor But ton 2 click will give a pop up menu with a single entry Open which will also navigate to that use case or actor Child Text box Shows the use case or actor that is the child in this relationship i e the more specific end of the relationship Button 1 Double Click on this entry will navigate to that use case or actor But ton 2 click will give a pop up menu with a single entry Open which will also navigate to that use case or actor Powertype Drop down selector providing access to all standard UML types
347. o enable editing like e g selecting This menu is not intended for diagram layout functions Most functions here do something with the selected modelelement and diagram The items Configure Perspectives and Settings are a bit different since they adjust the way ArgoUML works but they do not belong in the File menu since their settings are not stored in the project e The View menu is for functions that do never alter the model nor the diagram layout only the way you view the diagram A good example is zoom Also navigational functions belong here e g Find and Goto Diagram All changes of settings in this menu apply to all diagrams e g zoom e The Create menu contains all possible diagrams that can be created These functions are context de pendend since they work on the selected modelelement e The Arrange menu allows layout changes in the current diagram which is not the same as the items in the View menu Functions here can not alter the UML model The Generation menu is for Code Generation The functions here work either on the selected modelelements or on the whole project The Critique menu is specific for settings related to critics which apply for all projects e The Tools menu is currently empty If plugins are installed then their functions appear here e The Help menu contains the usual information and about Mouse Behavior in the Menu Bar Behavior of the mouse in general and the nami
348. o sup port the new scenarios and there is little change to the cards this is a sign the you are ready to start design Concept Diagram To be written To be written System Sequence Diagram To be written To be written System Statechart Diagram To be written To be written Realization Use Case Diagram To be written To be written Documents To be written Use Case Specifications and Supplementary Requirements Specifications recast in solution language To be written 5 2 Class Diagrams To be written 5 2 1 5 2 2 5 2 2 1 To be written The Class Diagram To be written To be written Advanced Class Diagrams To be written To be written Association Classes To be written To be written 54 Analysis 5 3 Creating Class Diagrams in ArgoUML 5 3 1 Classes Identifying class diagrams from existing materials Vision Use Cases etc To be written 5 3 1 1 Using the Note Icon in the Tool Bar Click on your target class Then click on the note icon ArgoUML will generate the link automatically You can also right click to add a note as well Be aware that you can add an undefined number of notes to any one class e Warning Be aware that your note will not appear in the source code documentation tab 5 3 2 Associations To be written To be written 5 3 2 1 Aggregation To be written To be written 5 3 3 Class Attributes and Operat
349. of an asynchronous stimulus communicated between instances In the UML metamodel it is a sub class of Classifier Within ArgoUML signals are not fully handled Their value is when they are received as signal events driving the asynchronous behavior of state machines and when associated with send actions in state ma chines and messages for collaboration diagrams Tip In general there is limited value at present in defining signals within ArgoUML It may prove more useful to define signals as classes with a user defined stereotype of signal as suggested in the UML 1 4 standard This allows any dependency relation ships between signals to be shown 18 9 1 Signal Details Tabs The details tabs that are active for signals are as follows ToDoItem Standard tab Properties See Section 18 9 2 Signal Property Toolbar and Section 18 9 3 Property Fields For Signal be low Documentation Standard tab See Section 13 4 Documentation Tab 246 Class Diagram Artifact Reference Source Standard tab There is nothing generated for a signal Tagged Values Standard tab In the UML metamodel Signal has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed semantics from the superclass Classifier The value is a spec
350. of relatively large use cases others will prefer a larger number of smaller use cases A useful rule of thumb is that any practical project ought to require no more than about 30 use cases if it needs more it should be broken into sep arate projects We then show the relationship between use cases and actors on one or more use case diagrams For a large project more than one diagram will be needed Usually groups of related use cases are shown on one diagram We must then give a more detailed specification of each use case This covers its normal behavior al ternative behaviors and any pre and post conditions This is captured in a document variously known as a use case specification or use case scenario Finally since use cases are functional in nature we need a document to capture the non functional re quirements capacity performance environmental needs etc These requirements are captured in a doc ument known as a supplementary requirements specification Process Steps The steps in the requirements capture process can be summarized as follows 1 Capture an overall view of the problem and the desired characteristics of its solution in the vision document 2 Identify the use case and actors from the vision document and show their relationships on one or more use case diagrams 3 Give detailed use case specifications for each use case covering normal and alternate behavior pre and post conditions 4 Capture al
351. of the details pane see Sec tion 13 3 Properties Tab That section covers properties in general in this chapter they are linked to specific artifacts 16 2 The Model The model is the top level artifact within ArgoUML In the UML meta model it is a sub class of pack age In many respects within ArgoUML it behaves similarly to a package see Section 18 2 Package Note ArgoUML is restricted to one model within the tool Standard data types classes and packages are loaded the default see Chapter 24 Built In DataTypes Classes Interfaces and Stereotypes as sub packages of the model These sub packages are not initially present in the model but are added to the model when used 16 2 1 Model Details Tabs The details tabs that are active for the model are as follows ToDoItem Standard tab Properties See Section 16 2 2 Model Property Toolbar and Section 16 2 3 Property Fields For The Model below Documentation Standard tab See Section 13 4 Documentation Tab Stereotype Standard tab This contains a a list of the stereotypes applied to this model and a list of available stereotypes that may be applied to the model Tagged Values Standard tab In the UML meta model Mode1 has the following standard tagged values defined e derived from the superclass ModelElement Values t rue meaning the class is redundant it can be formally derived from other elements or fal
352. of the model The name of a model like all packages is by convention all lower case 2 Note 191 Top Level Artifact Reference The default name supplied to a new model by ArgoUML untitledModel is thus erroneous and guarantees that ArgoUML always starts up with at least one problem being reported by the design critics Stereotype Drop down selector Model is provided by default with the UML standard stereotypes for model systemModel and metamodel and package facade framework stub Stereotyping models is a useful thing although it is of limited value in ArgoUML where you have only a single model Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text box Records the namespace for the model This is the package hierarchy However since the model is at the top of the hierarchy in ArgoUML this box is always empty Visibility Radio box with entries public private protected and package Records the visibility for the model Since ArgoUML only permits one model this has no meaning ful use Modifiers Check box with entries Abstract Leaf and Root abstract is used to declare that this model cannot be instantiated but must always be special ized The meaning of abstract applied to a model is not that clear It might mean that the model contains interfaces or abstract classes without
353. oggles whether page breaks are shown on the diagram as white dotted lines 106 The Menu bar de Warning This menu item does not work in ArgoUML V0 22 10 6 The Create Menu This menu provides for creating the various types of UML diagrams supported by ArgoUML 10 6 1 3j New Use Case Diagram This menu entry creates a blank use case diagram and selects that diagram in the editing pane If a pack age is currently selected then the use case diagram will be created within that package This means that it will be shown within the package on the explorer hierarchy under Package centric view and artifacts created on the diagram will be created within the namespace of the package This does not only apply to a package but also to a class interface use case etc 27 Tip This does not prevent artifacts from other namespaces packages appearing on the diagram They can be added from the explorer using Add to Diagram from the button 2 pop up menu 10 6 2 Ej New Class Diagram This menu entry creates a blank class diagram and selects that diagram in the editing pane If a package is currently selected the class diagram will be created within that package This means that it will be shown within the package on the explorer hierarchy under Package centric view and artifacts created on the diagram will be created within the namespace of the package This does not only apply to a pack age but also to a class interface use c
354. ollaboration Button 1 double click navigates to the modelelement and opens its property tab Available Features Text box Lists the subset of features of the base classifier which is used in the collaboration button 1 double click navigates to the feature and opens its property tab 21 3 Association Role An association role is a specialization of an association used to describe an associations behavior in a particular context In the UML metamodel Association Roleisasub class of Association An association role is represented on a collaboration diagram in ArgoUML as a line connecting the in stances concerned However on a sequence diagram the representation is modified to reflect the type of action associated with the stimulus carried on the link see Section 19 3 Stimulus The association role is labeled with the association role name if any An association role shows its name and the association name according the following syntax AssociationRoleName AssociationName in the same manner as a classifier role The more generic syntax is I R C which stands for an Instance named I originating from the Classifier C playing the role R 21 3 1 Association Role Details Tabs The details tabs that are active for association roles are as follows ToDoItem Standard tab Properties See Section 21 3 2 Association Role Property Toolbar and Section 21 3 3 Property Fields For Association Role below Documentation
355. om a superclass query This indicates that the operation must have no side effects i e it must not change the state of the system It can only return a value D Caution Operations for user defined datatypes must always check this modifier static There is only one instance of this operation associated with the class as opposed to one for each instance of the class This is the OwnerScope attribute of a Feature metaclass within UML Any operation declared static is shown underlined on the class diagram Concurrency Radio box with entries guarded sequential and concurrent guarded Multiple calls from concurrent threads may occur simultaneously to one instance on any guarded operation but only one is allowed to commence The others are blocked until the performance of the first operation is complete D Caution It is up to the system designer to ensure that deadlock cannot occur It is the re sponsibility of the operation to implement the blocking behavior as opposed to the system sequential Only one call to an instance of the class with the operation may be outstanding at any one time There is no protection and no guarantee of behavior if the system violates this rule concurrent Multiple calls to one instance may execute at the same time The operation is re sponsible for ensuring correct behavior This must be managed even if there are other sequential or synchronized guarded operations executing at the ti
356. on mechanism provided by UML The user can define name value pairs to be associated with artifacts which define properties of that artifact The names are known as tags UML pre defines a number of tags that are useful for many of its artifacts Note The tag documentation is defined for the top UML metaclass Element and is so available to all artifacts In ArgoUML documentation values are provided through the Documentation tab rather than by using the Tagged Values tab The Tagged Values tab in ArgoUML comprises a two column table with a combo box on the left to select the tagdefinition and an editable box on the right for the associated value There is always at least one empty row available for any new tag The button at the top of this tab allows creation of a new tagdefinition After clicking this button go to the properties tab first to set the name of the new tagdefinition The mouse buttons have their standard behavior within the editable value area see Section 8 2 General Mouse Behavior in ArgoUML In addition when in the value field cut copy and paste operations may be invoked through the keyboard shortcuts Ctr 1 X Ctrl C and Ct r1 V respectively 13 10 Checklist Tab Conducting design reviews and inspections is one of the most effective ways of detecting errors during software development A design review typically consists of a small number of designers implementers or other project stakeholders holding a meetin
357. on that leads to a set of concurrent target states Pseudostates do not have the properties of a full state and serve only as a connection point for transactions but with some semantic value Within the UML metamodel Pseudostate is a sub class of StateVertex The representation of a pseudostate on a statechart diagram in ArgoUML depends on the particular kind of pseudostate initial deepHistory shallowHistory join fork junction and choice ArgoUML lets you place any pseudostate directly by tools for the specific types of pseudostate These are described in sep arate sections below see Section 20 12 Initial State Section 20 14 Junction Section 20 15 Choice Section 20 16 Fork Section 20 17 Join Section 20 18 Shallow History and Sec tion 20 19 Deep History 20 11 1 Pseudostate Details Tabs The details tabs that are active for pseudostates are as follows ToDoItem Standard tab Properties See Section 20 11 2 Pseudostate Property Toolbar and Section 20 11 3 Property Fields For Pseudostate below Documentation Standard tab Presentation Standard tab Stereotype Standard tab containing the stereotypes of the pseudostate In the UML metamodel PseudoState has the no standard stereotypes defined 292 Statechart Diagram Artifact Reference Tagged Values Standard tab In the UML metamodel Pseudostate has no standard tagged values defined 20 11 2 Pseudostate Property
358. on the explorer hierarchy under Package centric view and artifacts created on the diagram will be created within the namespace of the collaboration within the package 2 Tip This does not prevent artifacts from other namespaces packages appearing on the diagram They can added from the explorer by dragging or by using Add to Diagram from the button 2 pop up menu 10 6 5 5 New Statechart Diagram This menu entry creates a blank statechart diagram associated with the currently selected class and se lects that diagram in the editing pane It also creates a Statemachine UML element which is a con tainer for the elements shown on the new diagram Statechart diagrams are associated with a model element capable of dynamic behavior such as a classifi er or a behavioral feature which provides the context for the state machine it represents Suitable model elements are e g a class an operation and a use case If such element is not selected at the time the New Statechart Diagram menu is activated then an unattached statemachine is created To obtain a well formed UML model you have to set the context of the statemachine on its details pane 10 6 6 3 New Activity Diagram This menu entry creates a blank activity diagram associated with the currently selected class and selects that diagram in the editing pane It also creates a ActivityGraph UML element which is a container for the elements shown on the new diagram Activity diagrams are
359. ool other than ArgoUML 15 16 6 Remove Unneeded Realizes from lt class gt Suggestion that the specified class has a realization relationship both directly and indirectly to the same interface by realization from two interfaces one of which is a generalization of the other for example Good design deprecates such duplication 15 16 7 Define Concrete Sub Class Suggestion that a class is abstract with no concrete subclasses and so can never be realized 15 16 8 Define Class to Implement lt interface gt Suggestion that the interface referred to has no influence on the running system since it is never imple 186 The Critics mented by a class 15 16 9 Change Multiple Inheritance to interfaces This critic is discussed under an earlier design issues category see Section 15 14 1 Change Multiple Inheritance to interfaces 15 16 10 Make Edge More Visible This critic is discussed under an earlier design issues category see Section 15 7 14 Make Edge More Visible 15 17 Containment Critics concerning containment in ArgoUML that is where one artifact forms a component part of an other The current version of ArgoUML has the following critics in this category 15 17 1 Remove Circular Composition Suggestion that there is a series of composition relationships associations with black diamonds that form a cycle which is not permitted 15 17 2 Duplicate Parameter Name Suggestion that
360. operties Tab of the Details Pane see Sec tion 13 3 Properties Tab That section covers Properties in general in this chapter they are linked to specific artifacts Figure 22 1 Possible artifacts on an activity diagram shows an Activity Diagram with all possible ar tifacts displayed Figure 22 1 Possible artifacts on an activity diagram 315 Activity Diagram Artifact Reference state T rans firzt5tate state Trans loo pi uard doalti Transitioning zecondstate state T rans state Trans lod State Trans po uardu 22 1 1 Limitations Concerning Activity Diagrams in ArgoUML Activity diagrams are not fully developed yet in ArgoUML Some aspects are not fully implemented or may not behave as expected In particular lacking are call states swim lanes control icons signals sub activities synch states Interactions with other classifiers are provided by an object flow state which is only partly implemented 22 2 Action State An action state represents execution of an atomic action usually the invocation of an action Within the UML metamodel Act ionState is a sub class of SimpleState It is a specialized simple state that 316 Activity Diagram Artifact Reference only has an entry action and with an implicit trigger as soon as that action is completed Caution As a consequence any outgoing transitions from an action state should not have explicit trig
361. operty Toolbar By GO up Navigate up through the package structure of the model For a dependency this will be the package containing the dependency New Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected dependency navig ating immediately to the properties tab for that stereotype Tif Delete This deletes the selected dependency from the model S Warning This is a deletion from the model not just the diagram To delete a dependency from the diagram but keep it within the model use the main menu Remove From Dia gram or press the Delete key 18 13 3 Property Fields For Dependency Name Text box The name of the dependency r Tip It is quite common to leave dependencies unnamed m Note ce i ArgoUML does not enforce any naming convention for associations an Note ce There is no representation of the name of a dependency on the diagram 259 Class Diagram Artifact Reference Stereotype Drop down selector Dependency has no standard stereotypes of its own under UML 1 3 and so ArgoUML does not provide any The stereotype is shown between and above or across the gen eralization Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text box Records the namespace for the dependency This is the package hierarchy Suppliers Text area
362. operty sheet for the association end as described for setting navigation see the second option in Section 4 4 3 1 Setting Navigation A drop down menu gives a range of multi plicity options that may be selected The second of these two approaches has a wider range of options although ArgoUML does not cur rently allow the user to set an arbitrary multiplicity 4 4 4 Hierarchical Use Cases 4 4 4 1 Includes The procedure for adding an include relationship is the same as that for adding an association but using the include icon from the editing pane toolbar 3 i to join two use cases ww Since include relationships are directional the order in which the two ends are selected is important The including main use case should be selected first button 1 down and the included subsidiary use case second button 1 release It is possible to name include relationships using the property tab but this is rarely done and will not be displayed on the use case diagram 4 4 4 2 Extends The procedure for adding an extend relationship is the same as that for adding an include relationship but using the extend icon from the editing pane toolbar gr to join two use cases As with include relationships the order of selection matters In this case the extending subsidiary use case should be selected first button 1 down and the extending main use case second button 1 re lease Note ce This is the reverse of the incl
363. ore in formation Any artifact within UML can be given a stereotype to indicate its as sociation with a particular role in the design A stereotype spqr is generally indicated with the notation lt lt spqr gt gt A stereotype defines a Namespace within the design Examples of stereotypes are lt lt business gt gt and lt lt realization gt gt for Use Cases used to distinguish between Use Cases at the requirements phase defined in terms of the problem domain and Use Cases at the analysis phase defined in terms of the solution domain The document capturing non functional requirements that cannot be associated with Use Cases Scalable Vector Graphics format A standard representation of graphics diagrams that use vectors ArgoUML can export diagrams in SVG 346 Glossary System Sequence Diagram System Statechart Diagram To Do List Transition UML Use Case Use Case Diagram Use Case Specification Vision Document W3C A Sequence Diagram used in the Analysis Phase showing the dy namic behavior of the overall system See Chapter 5 Analysis for more information A Statechart Diagram used in the Analysis Phase showing the dy namic behavior of an active top level system objects See Chapter 5 Analysis for more information A feature of ArgoUML allowing the user to record activities that are yet to be completed The change between States in a Statechart Diagram Universal Modeling Language
364. ork is done The process is then repeated for further requirements to construct a product with a step up in functional ity Again further feedback can be applied to the requirements The process is repeated until eventually all requirements have been implemented and the product is complete It is this iteration that gives these processes their name Figure 3 3 Effort Involved in the Steps of an Iterative Process shows how this process compares to the pyramid structure of the Waterfall Process UML Based OOA amp D Figure 3 3 Effort Involved in the Steps of an Iterative Process The growth in popularity of iterative processes is closely tied to the growth of OOA amp D It is the clean encapsulation of objects that allows a part of a system to be built with stubs for the remaining code clearly defined 3 2 1 2 1 The Rational Unified Process Perhaps the best known Iterative Process is the Rational Unified Process RUP from Rational Software www rational com http www rational com This process recognizes that our pyramid view of even slices of the waterfall is not realistic In practice the early iterations tend to be heavy on the requirements end of things you need to define a reasonable amount even to get started while the later iterations have more of their effort in the design and build areas RUP recognizes that iterations can be grouped into a number of phases according to their stage in the overall project
365. ormal case For C these will probably const classes For Java this cannot be enforced for classes An out or in out parameter in an operation will become a referenced parameter in the method For C these will be referenced non const parameters For Java classes this is the default Simple types int boolean must in java be converted to an object of a corresponding class Integer Boolean The visibilities of the attributes associations and operations will become visibilities on the member variables or methods Packages will become directories namespaces or both 7 2 2 Generating code from interactions and state ma chines This conversion is not as straight forward as the conversion of the static structure It is much more de pending on the target language and target platform In general it is only possible to say the following for interactions A message is converted into a function call The class of the recipient will have to have a function with the correct name and signature The sender function in the class of the sender will have a call to the function in the recipient An asynchronous message is converted to either posting a message to be handled by some other thread or a function call to a function that starts a new thread The following describes one possible way to generate state machines A State Machine is generated to a set of member variables that each method in this class refer to when deciding beh
366. osition and all these three can be bidirectional or unidirectional Figure 12 4 The association tool selector 43 t 133 The Editing Pane e Dependency Add a dependency between two artifacts selected using button 1 motion from the dependent artifact Generalization Add a generalization between two artifacts selected using button 1 mo tion from the child to the parent oe Extend Add an extend relationship between two artifacts selected using button 1 motion from the extended to the extending use case i Include Add an include relationship between two artifacts selected using button 1 motion from the including to the included use case e Add Extension Point Add an extension point to a selected use case The extension point is given the default name newEP and location 1oc Where the extension point compartment is dis played the extension point may be edited by button 1 double click and using the keyboard or by se lecting with button 1 click after the use case has been selected and using the property tab Other wise it may be edited through its property tab selected through the property tab of the owning use case T Note This tool is grayed out except when a use case is selected 12 3 5 Class Diagram Specific Tools Several tools are provided specific to UML artifacts on class diagrams The detailed properties of these artifacts are described in th
367. ot cause a state change Which means that the Entry and Exit actions are not in voked 281 Statechart Diagram Artifact Reference Note ce F l This field shows the name of the transition while on the diagram the name of the trig ger is shown separated with a from the effect script Button 1 double click navigates to the selected transition button 2 gives a pop up menu with one entry New Add a new internal transition 20 3 Action An action specifies an executable statement and is an abstraction of a computational procedure that can change the state of the model In the UML metamodel it is a child of ModelElement Since in the metamodel an ActionSequence is itself an Action that is an aggregation of other actions i e the com posite pattern an ActionSequence may be used anywhere an action may be There are a number of different types of action that are children of Action within the UML metamodel CreateAction Associated with a classifier this action creates an instance of that classifier CallAction Associated with an operation this action calls the given operation ReturnAction An action used to return a result to an earlier caller e SendAction Associated with a signal this action causes the signal to be raised TerminateAction Causes the invoking object to self destruct UninterpretedAction An action used to specify language specific actions that do not classify under the other type
368. ote ArgoUML does not enforce any naming convention for extension points Stereotype Drop down selector ArgoUML does not provide any stereotypes for extension points 214 Use Case Diagram Artifact Reference Tip Stereotyping does not have great value on an extension point Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Location Text box A description of the location of this extension point within the owning use case Tip Extension points are always listed within use cases and extend relationships by their location Typically this will be the number name of the paragraph in the specification Base Use Case Text box Shows the base use case within which this extension point is defined Button 1 Double Click will navigate to the use case Extend Text box Lists all use cases which extend the base use case through this extension point Where an extending use case exists button 1 double click will navigate to that relationship 17 5 Association An association on a use case diagram represents a relationship between an actor and a use case showing that actor s involvement in the use case The invocation of the use case will involve some significant change perceived by the actor Associations are described fully under class diagrams see Section 18 11 Association 17 6 Association End Association
369. out in August of 2006 e Precision Graphics Markup Language PGML http en wikipedia org wiki PGML is an XML based language for representing vector graphics It was a W3C draft but was not adopted as a re commendation PGML and VML another XML based vector graphics language were later joined and improved upon to create SVG e Portable Network Graphics PNG http en wikipedia org wiki PNG is an ISO IEC standard 15948 2004 and is also a W3C recommendation PNG is a bitmap image format that employs lossless data compression PNG was created to both improve upon and replace the GIF format with an image file format that does not require a patent license to use PNG is officially pronounced ping but it is often just spelled out probably to avoid confusion with the network tool ping PNG is supported by the libpng reference library a platform independent library that contains C functions for handling PNG images e PostScript PS http en wikipedia org wiki PostScript is a page description language and pro gramming language used primarily in the electronic and desktop publishing areas e Scalable Vector Graphics SVG http en wikipedia org wiki Scalable Vector Graphics is an XML markup language for describing two dimensional vector graphics both static and animated and either declarative or scripted It is an open standard created by the World Wide Web Consorti um The use of SVG on the web is in its infancy There is a grea
370. ovement will adjust the zoomfactor Clicking with button 1 on the shown percentage allows editing the given zoomfactor in percent directly with the keyboard Double clicking on the value shown selects the whole entry for easy overtyping Clicking with button 1 below or above the knob increases or decreass the zoom factor with 196 Use this function to easily fine adjust the percentage Clicking with button 1 or button 2 on the Zoom tool or anywhere outside the slider panel closes the panel The keyboard can be used to operate the Zoom Slider as follows When the Zoom icon in the toolbar has the focus indicated by the thin blue box around it then pressing the spacebar opens the zoon slider panel Use the arrow keys to increase and decrease the percentage 1 by 1 Use Shift Tab to set the focus to the percentage box where you can edit the given value directly Pressing Enter activates the changed value When the knob has the focus pressing PageUp PageDown increases decreases the percentage by 50 Pressing Home sets the percent age to 500 and End sets it to 0 9 4 Create operations These buttons have identical functions as their counterparts in the Create menu 80 The Toolbar New Use Case Diagram See for a full description Section 10 6 1 New Use Case Diagram New Class Diagram See fora full description Section 10 6 2 New Class Diagram m New Sequence Diagram See for a full description Section 10 6 3
371. ovided The ATM will continue to provide services to cus tomers when communications with the central computer is not available 4 5 1 6 Constraints 50 Requirements Capture The project must be completed within nine months It must cost no more than 1 750 000 USD excluding production costs Components may be contracted out but the basic architecture as well as the infrastruc ture will be designed in house Close liaison must be maintained between the software development and the design development and production of the hardware Neither the hardware nor the software shall be considered the independent variable but rather they shall be considered equal 4 5 1 7 Appendix 4 5 2 4 5 3 The following are the actors that directly support this vision Additional actors may be identified later that are needed to support this or that technology They should not be added to this list unless they are deemed to directly support the vision as described in this document e Central Computer e Customer e Local Branch Official Maintenance Engineer The following are the use cases that directly support this vision Additional use cases may be identified later that are needed to support this or that technology or to support the use cases listed here They should not be added to this list unless they are deemed to directly support the vision as described in this document e Audit e Customer Uses Machine Maintain Machine Identify
372. ow how ArgoUML can be used for code generation We will also look at how the UML Use Case Diagram and Use Case Specification are invaluable tools for a test program 3 3 Why ArgoUML is Different In the introduction we listed the four key things that make ArgoUML different i it makes use of ideas from cognitive psychology ii it is based on open standards iii it is 100 pure Java and iv it is an open source project 3 3 1 Cognitive Psychology 3 3 1 1 Theory ArgoUML is particularly inspired by three theories within cognitive psychology i reflection in action ii opportunistic design iii and comprehension and problem solving 12 UML Based OOA amp D e Reflection in Action This theory observes that designers of complex systems do not conceive a design fully formed In stead they must construct a partial design evaluate reflect on and revise it until they are ready to extend it further As developers work hands on with the design their mental model of the problem situation improves hence improving their design e Opportunistic Design A theory within cognitive psychology suggesting that although designers plan and describe their work in an ordered hierarchical fashion in reality they choose successive tasks based on the criteria of cognitive cost Simply stated designers do not follow even their own plans in order but choose steps that are men tally least expensive among alternatives e Comprehen
373. ows the ATM use case dia gram with multiplicity displayed Figure 4 3 Use case diagram for an ATM system showing multiplicity 37 Requirements Capture Maintain ATM Bank Engineer 1 3 Use ATM Customer Local Bank Official Central Computer Multiplicity can clutter a diagram and is often not shown except where it is critical to understanding In the ATM example we would only choose to show 1 3 against the local bank official since all others are obvious from the context 4 3 2 3 Hierarchies of Use Cases In our ATM example so far we have just three use cases to describe all the behavior of the system While use cases should always describe a significant chunk of system behavior if they are too general they can be difficult to describe We could for example define the behavior of the use case Use ATM in terms of the behavior of three simpler use cases Deposit Cash Withdraw Cash and Query Account The main use case could be specified by including the behavior of the subsidiary use cases where needed Similarly the Maintain ATM use case could be defined in terms of two use cases Maintain Equip ment and Reload ATM In this case the two actors involved in the main use case are really only in volved in one or other of the two subsidiary use cases and this can be shown on the diagram The decomposition of a use case into simpler sub use cases is shown in UML by using an inclu
374. ox Records the namespace for the use case This is the package hierarchy Modifiers Check box with entries Abst ract Leaf and Root Abstract is used to declare that this actor cannot be instantiated but must always be special ized Leaf indicates that this use case can have no further children while Root indicates it is a top level use case with no parent Extension Points Text box If this use case is or can be extended this field lists the extension points for the use case ames Note Lr 7 Extension points are listed by their location point rather than their name Where an extension point has been created see below button 1 Double Click will navigate to that relationship Button 2 gives a pop up menu with one entry e New Add a new extension point and navigate to it making this use case the owning use case of the extension point Generalizations Text area Lists use cases which are generalizations of this one Will be set whenever a generaliza tion is created on the from this Use Case Button 1 Double Click on a generalization will navigate to that generalization Specializations Text box Lists any specialized use case i e for which this use case is a generalization Button 1 double click navigates to the generalization and opens its property tab Extends 212 Use Case Diagram Artifact Reference Text box Lists any class that is extended by this use case Where an extends rela
375. p ture through to final project build and deployment As each UML concept is encountered its use is explained Its use within ArgoUML is then described Finally a case study is used to give examples of the concepts in use Reference Manual Structure Chapter 8 Introduction is an overview of the user interface and provides a summary of the support for the various UML diagram types in ArgoUML Chapter 10 The Menu bar and Chapter 11 The Explorer describe the menu bar and each of the sub windows of the user interface known as Panes Chapter 15 The Critics gives details of all the cognitive critics within the system Eventually ArgoUML will link directly to this manual when giving advice on critics Chapter 16 Top Level Artifact Reference is an overview of the artifacts i e the UML entities that can be placed on diagrams within ArgoUML The following chapters Chapter 17 Use Case Diagram Arti fact Reference through Chapter 24 Built In DataTypes Classes Interfaces and Stereotypes describe the artifacts that can be created through each ArgoUML diagram and their properties as well as some 1 3 3 Introduction standard artifacts provided with the system A complete Glossary is provided Appendix A Supplementary Material for the Case Study provides ma terial to supplement the case study used throughout the document Appendix B UML resources and Ap pendix C UML Conforming CASE Tools identify background information on UML
376. p without a project file as an argument a new blank project is created This project contains a model called untitledModel This model contains a blank Class Diagram called class diagram 1 anda blank Use Case Diagram called use case diagram 1 23 UML Based OOA amp D The model and both empty diagrams can be seen in the explorer which is the main tool for you to nav igate through your model Let s assume for a moment that this is the point where you want to start modeling a new purchasing sys tem You want to give the name purchasingmodel to your model and you want to store it in a file called FirstProject 3 4 2 8 2 Saving a Project The File Menu For now ArgoUML saves diagrams using an earlier proposed standard Precision Graphics Markup Language PGML However it has the option to export graphical data as SVG for those who can make use of it When ArgoUML supports UML 2 0 it will store diagrams using the UML 2 0 Diagram Inter change format First let s save the model in it s current empty and unnamed state On the menu bar click on File then on Save Project As as shown in Figure 3 7 Invoking Save Project As Figure 3 7 Invoking Save Project As yi ArgoUML oix File Edit View Create Diagram Arrange Seneration Critique Tools Help D New c x a wsl gt BRABRBBEE S Open Project Ctri 0 4 El Save Project Ctri S k 4 LT FESSA d 7 d jl T E E Save Project
377. parent metaclass BehavioralFeature create and destroy Tip You should use create as the stereotype for constructors and destroy for de structors which are called finalize methods under Java Navigate Stereotype icon If a stereotype has been selected clicking button will navigate to the stereotype prop erty panel see Section 18 4 Stereotype Owner Text box Records the class which contains this operation Button 1 double click on the entry will navigate to the class Visibility Radio box with entries public private protected and package public The operation is available to any artifact that can see the owning class private The operation is available only to the owning class and any inner classes protected The operation is available only to the owning class or artifacts that are subclasses of the owning class package The operation is available only artifacts contained in the same package Modifiers Check box with entries abstract leaf root query and static 241 Class Diagram Artifact Reference abstract This operation has no implementation with this class The implementation must be provided by a subclass o Important Any class with an abstract operation must itself be declared abstract leaf The implementation of this operation must not be overridden by any subclass root The declaration of this operation must not override a declaration of the operation fr
378. pe is an attribute of the class with multiplicity Good OOA amp D depends on careful choices about which entities to represent as full objects and which to represent as attributes of objects There are two options to fix this problem e Replace the DataType with a full class e orchange the association aggregation to composite relationship at the Data Type end 15 3 2 Reduce Classes in diagram diagram Suggestion to improve readability by having fewer classes on a diagram If one class diagram has too many classes it may become very difficult for humans to understand Defining an understandable set of class diagrams is an important part of your design The Wizard of this critic allows setting of the treshold i e the maximum number of classes allowed be fore this critic fires d Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more classes until the critic fires again Restarting ArgoUML re sets this number to its default 20 15 3 3 Clean Up Diagram Suggestion that the diagram could be improved by moving artifacts that are overlapping 15 4 Naming These are critics concerning the naming of artifacts The current version of ArgoUML has 18 critics in this category 15 4 1 Resolve Association Name Conflict Suggestion that two association names in the same namespace have the same name This is not permit ted in UML 15 4 2 Revise Att
379. periods used to indicate nested packages The name untitledModel is unconventional L3 Revise Package Name unti 1 ne because it is not all lower case with periods C Add Elements to Package 7 Laii E Following good naming conventions help to improve the understandability and maintainability of the design To fix this use the Next gt button or manually select untitledModel and use he Properties tab to give it a different name Help Notice that your selection is highlighted in red in the To Do Pane and that a full explanation appears now in the Details Pane the lower right pane You may have to re size your Details Pane or to scroll down in order to see the full message as displayed in our example What ArgoUML is trying to tell you is that usually package names are written in lower cases The de fault top level package created by ArgoUML is called unt itledModel and therefore violates a sound design principle Actually this could be considered as a bug within ArgoUML but it comes in handy to demonstrate the working of critics At this point you can choose to change the package name manually to impose silence on the design critic for some time or permanently or to request a more comprehensive explanation by Email from an expert We will do nothing of this we ll come back to it when we talk about the design critics in more detail but we ll use another handy feature of ArgoUML an auto correct
380. plorer However once you select one of the built in DataTypes Classes or Interfaces in the Type combo box on the property sheet of a parameter of an operation of a class then it becomes visible you will find that the DataType Class or Interface has appeared in the model in its correct package stucture for the latter 2 Built In Datatypes These are the built in atomic types You can change them if you wish However this is not good practice All these can be found in the java lang subpackage of the main model d Caution You should be aware that these are Java datatypes They are not mandated by the UML standard These are the standard datatypes For their definition refer to the Java standard boolean byte char double float int long short void 3 Note void is not strictly speaking a type but the absence of type ArgoUML knows about void and allows it as an option where a datatype may be selected Built In Classes These are the common classes corresponding to classes defined within the standard Java environment It is up to you if you wish to change them These are found in all four subpackages of the java subpackage For a definition of these classes see the Java language and library definitions 336 Built In DataTypes Classes Interfaces and Stereotypes 24 3 1 Built In Classes From java lang These are the classes within the java lang package Boolean
381. point This creates a new use extension point within the namespace of the current use case with the cur rent use case as its associated use case navigating immediately to the properties tab for that exten sion point Tif Delete This deletes the selected use case from the model En Warning This is a deletion from the model not just the diagram To delete a use case from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 17 3 3 Property Fields For Use Case Name Text box The name of the use case Since a use case is a classifier it would be conventional to Capitalize the first letter and initial letters of any component words e g RemoteSensor The name is shown inside the oval representation of the use case on the diagram F Note 211 Use Case Diagram Artifact Reference ArgoUML does not enforce any naming convention for use cases Stereotype Drop down selector Use case is provided by default with the UML standard stereotypes meta class powertype process thread utility for classifiers Stereotyping can be useful when creating use cases in the problem domain requirements capture and solution domain analysis but none of the predefined stereotypes are well suited to this Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Text b
382. protected and package Records the visibility for the Enumeration Client Dependencies Text area Lists any elements that depend on this enumeration d Caution It is not clear that defining dependencies between enumerations makes much sense Supplier Dependencies Text area Lists any elements that this enumeration depends on d Caution It is not clear that defining dependencies between enumeration makes much sense Generalizations Text area Lists any enumeration that generalizes this enumeration Specializations Text box Lists any specialized enumerations i e for which this enumeration is a generalization Operations Text area Lists all the operations defined on this enumeration Button 1 double click navigates to the selected operation button 2 click brings up a pop up menu with two entries Move Up Only available where there are two or more operations and the operation selected is not at the top It is moved up one Move Down Only available where there are two or more operations listed and the operation selected is not at the bottom It is moved down one See Section 18 7 Operation for details of operations d Caution ArgoUML treats all operations as equivalent Any operations created here will use the same mechanism as operations for classes Remember that operations on enumerations must have no side effects they are read only This means the query modifier must be checked for all operations
383. provided by ArgoUML and all new classes created within the current model This is the type of the child entity of the generalization 218 Use Case Diagram Artifact Reference Tip ke This can be ignored for use case analysis The only sensible value to put in would be the child use case type as a classifier this appears in the drop down list Figure 17 2 Example use of a discriminator with generalization rights rights rights rights I l l Walid inheritance Incomplete inheritance This is a real nonsence It does not realize rights How could a Visitor be Administrator pseudo attribute at the same time 17 9 Extend Extend is a relationship between two use cases Where A extends B it means A describes more specific behavior and B the general version of that behavior In many respects extend is like generalization However the key difference is that the extended use case defines extension points see Section 17 4 Extension Point which are the only places where its beha vior may be extended The extending use case must define at which of these extension points it adds be havior This makes the use of extend more tightly controlled than general extension and it is thus preferred wherever possible Examples for a travel agent sales system might be the use case for paying for a ticket which has an ex tension point in the specification of the payment Extending use cases may then exten
384. provided specific to UML artifacts on activity diagrams The detailed properties of these artifacts are described in the section on activity diagram artifacts see Chapter 22 Activity Diagram Arti fact Reference Oe ion State Add an action state to the diagram Transition Add a transition between two action states selected using button 1 motion from the originating action state to the receiving action state B Initial Add an initial pseudostate to the diagram Caution There is nothing to stop you adding more than one initial state to a diagram However to do so is meaningless and one of the critics will complain 138 The Editing Pane C Final State Add a final state to the diagram Junction Add a junction decision pseudostate to the diagram D Caution A well formed junction should have one incoming transition and two or more outgoing ArgoUML does not enforce this but an ArgoUML critic will complain about any junc tion that does not follow this rule im Fork Add a fork pseudostate to the diagram d Caution A well formed fork should have one incoming transition and two or more outgoing ArgoUML does not enforce this but an ArgoUML critic will complain about any fork that does not follow this rule sis Join Add a join pseudostate to the diagram d Caution A well formed join should have one outgoing transition and two or more incoming ArgoUML does not enforce this but an
385. pter 1 Introduction 1 1 Origins and Overview of ArgoUML 1 1 1 Object Oriented Analysis and Design 1 1 2 Over the past decade Object Oriented Analysis and Design OOA amp D has become the dominant soft ware development paradigm With it has come a major shift in the thought processes of all involved in the software development life cycle Programming language support for objects began with Simula 67 but it was the emergence in the 1980 s of hybrid languages such as C Ada and Object Pascal that allowed OOA amp D to take off These lan guages provided support for both OO and procedural programming Object Oriented programming be came mainstream An OO system is designed and implemented as a simulation of the real world using software artifacts This premise is as powerful as it is simple By using an OO approach to design a system can be designed and tested or more correctly simulated without having to actually build the system first It is the development during the 1990 s of tools to support Object Oriented analysis and design that moved this approach into the mainstream When coupled with the ability to design systems at a very high level a tool based OOA amp D approach has enabled the implementation of more complex systems than previously possible The final driver that has propelled OOA amp D has been its suitability for modeling graphical user inter faces The popularity of object based and object oriented graphical languag
386. r see Section 18 8 Parameter Tif Delete This deletes the event from the model 20 9 3 Property Fields For Event Name Text box The name of the event By convention event names start with a lower case letter and use bumpy caps to divide words within the name in the same way as operations s 2 Note 289 Statechart Diagram Artifact Reference ArgoUML does not enforce this naming convention Tip For call events it makes sense to use the name of the associated operation For signal events it make sense to use the name of the signal prefixed by sig For time events use the time expression prefixed by time and for change events the change expression prefixed by change Namespace Text field Shows the namespace for the event This is the composition hierarchy Parameters Text area with entries for all the actual parameter values of the event see Section 18 8 Parameter Button 1 double click on any of the parameters navigates to that parameter button 2 click brings up a pop up menu with one entry New Parameter Create a new parameter and navigate to it Transition This shows the transition caused by the event Button 1 double click on the transition navigates to that transition Operations Drop down selector Only present for a Call Event This allows specifying the operation that causes the event when called Signal Text field Only present for a Signal Event This allows specifyin
387. r Package 227 for Parameter 243 for Signal 246 for Stereotype 201 for Use Case 210 Developer Zone 2 Developers Cookbook The 2 Diagram 203 Activity 342 Class 342 Collaboration 343 Sequence 346 State 346 System Sequence 347 System State 347 Use Case 35 347 Diagram Details Tabs 205 Diagram Name 205 Diagram Property Fields 205 Discriminator of Generalization 218 Documentation in Use Case Diagrams 48 E Edit Menu 21 Edit Toolbar 22 Enumeration 197 Enumeration Details Tabs 198 Enumeration Literals 200 Enumeration Modifiers 199 363 Index Enumeration Name 199 Enumeration Properties 198 Enumeration Property Fields 199 Enumeration Property Toolbar 198 Enumeration Tagged Values 198 Enumeration Visibility 200 EPS 14 Exit 93 Explorer 121 Mouse Behavior 121 Extend Relationship 39 219 343 in a Use Case Diagram 47 of Use Case 212 Extend Relationship Base Use Case 222 Extend Relationship Details Tabs 220 Extend Relationship Extension 222 Extend Relationship Extension Point 222 Extend Relationship Name 221 Extend Relationship Namespace 222 Extend Relationship Stereotype 221 Extending Use Cases of Extension Point 215 Extension of Extend Relationship 222 Extension Point 45 213 of Extend Relationship 222 of Use Case 212 Extension Point Base Use Case 215 Extension Point Details Tabs 213 Extension Point Extending Use Cases 215 Extension Poi
388. ram or compos ite state However to do so is meaningless and one of the critics will complain a Final State Add a final state to the diagram Junction Add a junction pseudostate to the diagram D Caution A well formed junction should have at least one incoming transition and exactly one outgoing ArgoUML does not enforce this but an ArgoUML critic will complain about any junction that does not follow this rule 137 The Editing Pane O Choice Add a choice pseudostate to the diagram D Caution A well formed choice should have at least one incoming transition and exactly one out going ArgoUML does not enforce this but an ArgoUML critic will complain about any choice that does not follow this rule m Fork Add a fork pseudostate to the diagram D Caution A well formed fork should have one incoming transition and two or more outgoing ArgoUML does not enforce this but an ArgoUML critic will complain about any fork that does not follow this rule iin Join Add a join pseudostate to the diagram D Caution A well formed join should have one outgoing transition and two or more incoming ArgoUML does not enforce this but an ArgoUML critic will complain about any join that does not follow this rule H Shallow History Adda shallow history pseudostate to the diagram dy Deep History Add a deep history pseudostate to the diagram 12 3 9 Activity Diagram Specific Tools Seven tools are
389. rarchy Stimuli sent To Be Written Stimuli Received To Be Written Residents Text box Lists any residents see Section 23 4 Component designed to be deployed on this component Button 1 double click navigates to the selected entry Classifiers Drop down selector A Component instance type can be selected here d Caution ArgoUML V0 18 lists many more items in the dropdown list then solely Components 331 Deployment Diagram Artifact Reference Beware to select Components only 23 6 Dependency A key part of any component or deployment diagram is to show dependencies For details see Sec tion 18 13 Dependency Caution UML relies on stereotyping of dependencies on component and deployment diagrams to characterize the types of relationship In the current release of ArgoUML there are limita tions in the implementation of dependencies which limit this functionality 23 7 Class A component diagram may show the key internal structure of components including classes within the component For details see Section 18 5 Class Caution Classes can only be added to a component diagram if they already exist in the model by selecting them in the explorer and executing the Add to diagram button 2 command There is no way to create a new class on a component diagram 23 8 Interface A component or deployment diagram may show components or component instances which implement int
390. re reliable but not have all the latest features or the current ver sion which will be less reliable but have more features Choose according to your own situation ArgoUML comes in zip or tar gz flavors Choose the former if you are a Microsoft Windows user and the latter if you are running some flavor of Unix Unpacking is as follows On Windows Unzip the zip file with WinZip or on later versions of Windows ME XP copy the files out of the compressed folder and put them into a directory of your choosing On Unix Use GNU tar to unzip and break out the files to a directory of your choice tar zxvf lt file gt tar gz If you have an older version of tar the z option may not be avail able so use gunzip file tar gz tar xvf 16 UML Based OOA amp D You should have a directory containing a number of jar files and README txt 3 4 1 5 Problems Downloading If you get completely stuck and you have no local assistance try the web site particularly the FAQ http argouml tigris org faqs users html If this still doesn t solve the problem try the ArgoUML users mailing list You can subscribe through the mailing lists section of the project web site argouml tigris org http argouml tigris org Or send an empty message to users argouml org mailto users 9 argouml org with the subject line subscribe You can then send your problem to users 9 argouml org mailto users 9 argouml org and
391. rea get private protected public as for set D 1 3 Parameters D 1 3 1 Variable passing semantics If a Parameter for an Operation is marked as out or inout the variable will be passed by refer ence default or pointer needs tagged value pointer see above otherwise by value Return values in UML are simply Parameters marked as return therefore everything here applies to them except where explicitly noted e Warning Note that UML allows multiple return values This is possible to support in C as out parameters but currently the generator doesn t supports it This problem is being handled in issue 3553 handle multiple return parameters http argouml tigris org issues show bug cgi id 3553 D 1 3 2 Parameter tagged values pointer true false default same as for Attributes reference ditto D 1 4 Preserved sections With each code generation special comments around the member function definitions will be generated like this function Testclass Testclass section 64 88 0 40 76f 2e8 ec37965ae0 7 ff begin 354 The C Module section 64 88 0 40 76f2e8 ec37965ae0 7fff end All code you put within the begin and end lines will be preserved when you generate the code again Please do not change anything within these lines because the sections are recognized by this comment syntax As the curly braces are placed within the preserved area attribute initial
392. red unrecognized elements named Diagram Some versions of Poseidon are known to create this type of file by default although there s usually an export option to force them to create standard XMI files e UML Profile file org argouml model mdr mof default uml14 xmi by default This is a read only field which shows the current profile being used by ArgoUML If you specified an alternate profile at startup time or a plugin module installed a different profile it will display here In the future this will be a settable field that allows you to select different profiles to match different modeling environments Java C AndroMDA etc 10 4 5 2 Environment Tab Selecting the Environment tab button 1 click on the tab lists several environmental items Note that none of the paths can be altered these are just a matter of record Figure 10 14 The dialog for Settings Environment Ww Settings Pref CES Default graphics Format GIF image gif Ec Graphics export resolution Standard Notations argo root Appearance Modules argo home argo ext dir java home user home 1user dir Startup Directory 97 The Menu bar Default Graphics Format Here you can select the same graphics formats as in the menu Section 10 3 11 Export Graphics The chosen format is selected by default in the Export Graph ics and Export All Graphics menu items Graphics
393. relate interactions to the static struc ture of the system See Chapter 21 Collaboration Diagram Artifact Reference for details of the ArgoUML collaboration diagram and the artifacts it supports Implementation diagrams UML defines two implementation diagrams to show the relationship between the software components that make up a system the component diagram and the relation ship between the software and the hardware on which it is deployed at run time the deployment dia gram The ArgoUML deployment diagram provides support for both component and deployment diagrams and additionally for object diagrams See Chapter 23 Deployment Diagram Artifact Reference for details of the diagram and the artifacts it supports Diagrams are created using the Create drop down menu see Section 10 6 The Create Menu or with the tools on the toolbar see Section 9 4 Create operations Note Lg f ArgoUML uses its deployment diagram to create the UML 1 4 component deployment and object diagrams d Caution Statechart and activity diagrams are associated with a particular class or operation or the latter also with a package and can only be created when this modelelement has been se lected E Warning In ArgoUML version 0 20 the UML 1 4 object diagram as a variant of the class diagram is not directly supported However it is possible to create simple object diagrams within the ArgoUML deployment diagram 204 Top Le
394. ribute Names to Avoid Conflict Suggestion that two attribute names of a class have the same name This is not permitted in UML cn Note The problem may be caused by inheritance of an attribute through a generalization rela tionship 173 The Critics 15 4 3 Change Names or Signatures in an Artifact Two operations in lt artifact gt have the same signature This means their name is the same and the list of parameters has the same type Where there are conflicting signatures correct code cannot be generated for mainstream OO languages It also leads to very unclear semantics of the design In comparing signatures this critic considers 1 the name 2 the list of in out and in out parameter types in order and Only if these all match in both type and order will the signatures be considered as the same This follows the line of Java C in ignoring the return parameters for the signature This may be unsat isfactory for some functional OO languages x Note cg Some purists would argue that the comparison should really differentiate between in out and in out parameters However no practical programming language can do this when resolving an overloaded method invocation so this critics lumps them all together 15 4 4 Duplicate End Role Names for an Association The specified association has two or more ends roles with the same name One of the well formedness rules in UML 1 4 for associations is that
395. rity High Medium and Low The priority associated with the to do items generated by a par ticular critic may be altered through the Critique Browse Critics menu see Sec tion 10 9 4 Browse Critics By Decision The to do items are organized into 17 hierarchies by design issue Uncategor ized Class Selection Behavior Naming Storage Inheritance Containment Planned Extensions State Machines Design Patterns Relationships In stantiation Modularity Expected Usage Methods Code Generation and Stereotypes The details of the critics in each category are discussed in Section 10 9 2 Design Issues By Goal ArgoUML has a concept that critics may be grouped according to the user goals they af fect This presentation groups the to do items into hierarchies by goal d Caution 170 The To Do Pane In the current release of ArgoUML there is only one goal Unspecified and all to do items will appear under this heading By Offender The to do items are organized into a hierarchy according to the artifact that caused the problem Todo items that were manually created with the New ToDo item button i e not by a critic are not listed here By Poster The to do items are organized into a hierarchy according to which critic generated the to do item The class name of the critic is listed instead of just its headline name since the former is guaranteed to be a unique name By Knowledge Type
396. rning This critic is meaningless in the V0 14 version of ArgoUML which does not support asso ciation classes 182 The Critics 15 9 2 Make lt association gt Navigable Suggestion that the association referred to is not navigable in either direction This is permitted in the UML standard but has no obvious meaning in any practical design 15 9 3 Remove Navigation from Interface via lt association gt Associations involving an interface can be not be navigable in the direction from the interface This is because interfaces contain only operation declarations and cannot hold pointers to other objects This part of the design should be changed before you can generate code from this design If you do gen erate code before fixing this problem the code will not match the design To fix this select the association and use the Properties tab to select in turn each association end that is not connected to the interface Uncheck Navigable for each of these ends The association should then appear with a stick arrowhead pointed towards the interface When an association between a class and interface is created in ArgoUML it is by default navigable only from the class to the interface However ArgoUML does not prevent to change the navigability af terwards into a wrong situation Which will cause this critic to be triggered 15 9 4 Add Associations to lt artifact gt Suggestion that the specified artifact actor use case or
397. roperty Fields For Enumeration ee 199 16 5 Stereotype oo eee EE Ue S eed o de eo Seah D Cet eu 201 16 5 1 Stereotype Details Tabs eeseeeeeee mm He 201 16 5 2 Stereotype Property Toolbar 2 0 0 0 cece cece eee ceeeceeeeeeeeneee 202 16 5 3 Property Fields For Stereotype cece cece eee cee ce eeeeeeen teen es 202 16 6 Diagram ET Sureces dh eases E KEETE EEE EE E E 203 16 6 1 Diagram Details Tabs 1 inerenti ree terne 205 16 6 2 Diagram Property Toolbar eA 205 16 6 3 Property Fields For Diagram see 205 17 Use Case Diagram Artifact Reference sssssssee IH 206 17 4 Introduction e o e Er AENEIS e E ee Ra EN 206 17 1 1 ArgoUML Limitations Concerning Use Case Diagrams 206 11 27 ACIOD oci ep e eR WE S 207 1772 1 Actor Details Tabs 45 0 tepore eet ote eer o Ore pet 207 17 2 2 Actor Property Toolbar eH 208 17 2 3 Property Fields For Actor sse 208 17 3 Use Case iiec ee pee ete eerie Ik eed 209 17 3 1 Use Case Details Tabs irem re ene 210 17 3 2 Use Case Property Toolbar see 211 17 3 3 Property Fields For Use Case eA 211 17 4 Extension Point crece teneret Leere Eee EEEE EEE ETE 213 17 4 1 Extension Point Details Tabs ese 213 17 4 2 Extension Point Property Toolbar eeeeA 214 17 4 3 Property Field
398. rs when the extension point compart ment of a use case is hidden Displays the compartment Hide All Compartments Only appears when both attribute and operation compartments are displayed on a class or object Hides both compartments Show All Compartments Only appears when both attribute and operation compartments are hidden on a class or object Displays both compartments Hide Attribute Compartment Only appears when the attribute compartment of a class or object is displayed Hides the compartment Show Attribute Compartment Only appears when the attribute compartment of a class or object is hidden Displays the compartment 144 The Editing Pane Hide Operation Compartment Only appears when the operation compartment of a class or object is displayed Hides the compartment Show Operation Compartment Only appears when the operation compartment of a class or object is hidden Displays the compartment Hide Enumeration Literal Compartment Only appears when the enumeration literal compartment of an enumeration is displayed Hides the compartment Show Enumeration Literal Compartment Only appears when the enumeration literal compartment of an enumeration is hidden Displays the compartment Show All Edges Only appears on a class Displays all associations to shown artifacts that are not shown yet This is the same function as the add to Diagram on the asociation in the explorer context men
399. rtifact Reference ssssssese 267 19 1 Introduction x eo RUN eee tS eite vet NEUE 267 19 1 1 Limitations Concerning Sequence Diagrams in ArgoUML 268 19 2 ObjJeet 5 osse tre bs rU orar E toll eene repite Yet See Ha 268 19 2 Object Details Tabs eet oor dee i nte end eroe exo rs 268 19 2 2 Object Property Toolbar eeHHMII 269 19 2 3 Property Fields For Object srneci sespe nes pnp 269 19 3 Stimulus eei ee epic prete e peeing eese ERE RR NER 270 19 3 1 Stimulus Details Tabs esse 271 19 3 2 Stimulus Property Toolbar e 272 19 3 3 Property Fields For Stimulus eeee 273 19 4 Stimulus Call 2 5 mire eee A oreet epe rero idee e 274 19 5 Stimulus Create soca ct eh eE R PERROS r Rep 274 ArgoUML User Manual 19 6 Stimulus Destroy e Eae gi E Ea See 274 19 7 Stimulus Send cse petet etoile dtd ees 275 19 8 Stimulus Return iue Ren Ss oe Bs aa RUE E 275 ILS HIR quK 275 19 9 1 Fink Details Tabs teet eee tots 275 19 9 2 Link Property Toolbar cic trie ee htt 276 19 9 3 Property Fields For Link eH 277 20 Statechart Diagram Artifact Reference sss 278 20 1 Introduction ss sees o ttp eei ne esas I ERR REN 278 20 1 1 Limitations Concerning Statechart Diagrams in ArgoUML 279 20 2 State ccce even tee vers eee tenere Prosper suede sguued edop ru ude EE ead ren ERO 279
400. ruction not creating the solution Tagged Values Standard tab In the UML metamodel UseCase has the following standard tagged values defined persistence from the superclass Classifier Values transitory indicating state is destroyed when an instance is destroyed or persistent marking state is preserved when an instance is destroyed Tip In general the instantiation of use cases is not a major aspect of any design method they are mostly concerned with requirements capture For most OOA amp D method ologies this tag can safely be ignored semantics from the superclass Classifier The value is a specification of the se mantics of the use case derived from the superclass ModelElement Values t rue meaning the use case is re dundant it can be formally derived from other elements or false meaning it cannot s Note Derived use cases still have their value in analysis to introduce useful names or 210 Use Case Diagram Artifact Reference concepts Checklist Standard tab for a Classifier 17 3 2 Use Case Property Toolbar By GO up Navigate up through the package structure of the model C New use case This creates a new use case within the model but not within the diagram and shows immediately the properties tab for that use case Tip This method of creating a new use case can be confusing It is much better to create a new use case on the diagram of your choice a extension
401. s Button 1 click navigates to the receiver instance button 2 gives a pop up menu with one entry Open Navigate to the selected receiver instance e Warning In the current release of ArgoUML this field is broken It always shows the entry none and the pop up menu is grayed out Namespace Text box Records the namespace for the stimulus This is the package hierarchy Button 1 click on the entry will navigate to the package defining this namespace or the model for the top level namespace 19 4 Stimulus Call This tool creates a stimulus associated with a call action on the diagram creating at the same time the associated link between sender and receiving instances All details tabs and properties are identical to to that of stimulus in general see Section 19 3 Stimulus Its graphical representation on the diagram is that of a stimulus associated with a call ac tion i e a solid line with a solid arrow head Note ce a Because the current release of ArgoUML does not fully implement actions there is no en forcement of the relationship to a call action 19 5 Stimulus Create This tool creates a stimulus associated with a create action on the diagram creating at the same time the associated link between sender and receiving instances All details tabs and properties are identical to to that of stimulus in general see Section 19 3 Stimulus Its graphical representation on the diagram is that of a stimulus
402. s see Section 10 8 1 Generate Se lected Classes would with all classes in the current diagram selected 10 8 3 Generate Code for Project To be Written 10 8 4 Settings for Generate for Project To be Written 10 9 The Critique Menu This menu controls one of ArgoUML s unique features the use of critics to guide the designer The theory behind this is well described in Jason Robbins PhD dissertation ht tp argouml tigris org docs robbins dissertation http argouml tigris org docs robbins dissertation C Note A word about terminology The critics are background processes which evaluate the cur rent model according to various good design criteria There is one critic for every design criterion The output of a critic is a critique a statement about some aspect of the model that does not appear to follow good design practice Finally a critique will generally suggest how the bad design issue it has identified can be rectified by raising a to do item Note The critics run as asynchronous processes in parallel with the main ArgoUML tool Changes typically take a second or two to propagate as the critics wake up 10 9 1 Toggle Auto Critique This is a check box controlling whether the critics are running By default it is checked If unchecked then all critics are disabled and any to do items generated by critics the only others being those the de 112 The Menu bar
403. s Aligns the selected artifacts so their horizontal centers are in a vertical line EH Align Vertical Centers Aligns the selected artifacts so their vertical centers are in a horizontal line E Align To Grid Aligns the selected artifacts so their top and right edges are on the grid snap boundary see Section 10 5 5 Adjust Grid Snap edge Tip m n i The alignment is to the current grid snap setting which may be smaller larger or the same as the displayed grid Since items are aligned to the grid snap boundary any way when you place them this menu entry has no effect unless you have either changed the grid snap to a larger value or used one of the other Arrange menu entries to push items off their initial positions 10 7 2 Distribute This sub menu distributes the selected items There are four distribution options provided 10 7 3 nu Distribute Horizontal Spacing The leftmost and rightmost selected artifacts are not moved The others are adjusted horizontally until the horizontal space i e from the right edge of the left artifact to the left edge of the right artifact is the same for all of the selected items TIE Distribute Horizontal Centers The leftmost and rightmost selected artifacts are not moved The others are adjusted horizontally until the distance between the horizontal centers of all the selected items is the same eal Distribute Vertical Spacing The top and bottom selected artifacts ar
404. s a name by which the source end of an association role can reference the target end am Note L E j ArgoUML does not enforce any naming convention for association end roles Stereotype Drop down selector Association end role is provided by default with the UML standard stereotypes for AssociationEndRole association global local parameter self Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Base Text field that shows the name of the corresponding association end Button 1 double click navig ates to the association end 310 Collaboration Diagram Artifact Reference AssociationRole Text box Records the parent association role for this association end role Button 1 double click navigates to the association role Type Drop down selector providing access to all standard UML types provided by ArgoUML and all new classes created within the current model This is the type of the entity attached to this end of the association role Multiplicity Editable drop down text entry Allows to alter the multiplicity of this association end role with re spect to the other end i e how many instances of this end may be associated with an instance of the other end The multiplicity is shown on the diagram at that end of the association role All remaining properties See Section 18 12 3 Property Fields For Association E
405. s For Extension Point seeeeeeee 214 17 5 Associaton sss eoi tre rete teer bres Seep youn deepens EEEE rte E wah ec dro peers 215 17 6 Association End ert t eee rH 215 17 7 Dependency 2 rto te tet e ace plore oa dab tete eriees 215 17 8 Generalization ss visit och Ne e e UU Po 216 17 8 1 Generalization Details Tabs es 216 17 8 2 Generalization Property Toolbar eee 217 17 8 3 Property Fields For Generalization eene 217 17 9 Extend so 25 55 niente UEM EEE EEES 219 17 9 T Extend Details Tabs oerte te EPI Rd 220 17 9 2 Extend Property Toolbar eeeH 220 17 9 3 Property Fields For Extend eA 221 17 10 Includes nieto teret et densest ope Settee Causa ed prt ode se Sheen es Set E Pod gest es 222 17 10 1 Include Details Tabs HM 223 17 10 2 Include Property Toolbar eeeH 223 17 10 3 Property Fields For Include eee 224 18 Class Diagram Artifact Reference esses eee ene 226 18 1 Introd cti n sieros n ecce tre rede eripe bee erre Ree enne 226 18 1 1 Limitations Concerning Class Diagrams in ArgoUML 227 18 2 Package ueeeelere eonim eibeed 227 18 2 1 Package Details Tabs o ice ether teen 227 18 2 2 Package Property Toolbar see 228 18 2 3 Property Fields For Package seseem 229
406. s Pane The Critique Menu Figure 13 2 Example of the To Do Item tab on the properties pane shows a typical pane The to do item is selected with button 1 in the to do pane see Chapter 14 The To Do Pane or by using the Critiques context sensitive pop up menu on the editing pane Figure 13 2 Example of the To Do Item tab on the properties pane 4 ToDo Item C Normally classes begin with a capital letter The name test is unconventional because it does not begin with a capital 2 Following good naming conventions help to improve the understandability and L3 maintainability of the design To address this use the Next gt button or manually select test and use the Properties tab to give it a different name Dac Cd Customization of the critics behaviour is possible through the Browse critics menu see Sec tion 10 9 4 Browse Critics The body of the tab describes the problem found by the critic and outlines how it can be fixed To the left are four buttons Cr New To Do Item This launches a dialog box see Figure 13 3 Dialog box for E New To Do Item which allows you to create your own to do item with its own headline which appears in the to do pane priority for the to do pane reference URL and detailed descrip tion for further information Figure 13 3 Dialog box for New To Do Item 150 The Details Pane w New To Do Item
407. s class will be identical to every other instance since there will be nothing about the instances that can differentiate them Under these circumstances you should consider making explicit that you have exactly one instance of this class by using the singleton Pattern Using the singleton pattern can save time and memory space Within ArgoUML this can be done by using the singleton stereotype on this class If it is not your intent to have a single instance you should define instance variables i e non static at tributes and or outgoing associations that will represent differences bewteen instances Having specified class as a singleton you need to define the class so there can only be a single instance This will complete the information representation part of your design To achieve this you need to do the following 1 You must define a static attribute a class variable holding the instance This must therefore have class as its type 2 You must have only private constructors so that new instances cannot be made by other code The creation of the single instance could be through a suitable helper operation which invokes this private constructor just once 3 You must have at least one constructor to override the default constructor so that the default con structor is not used to create multiple instances For the definition of a constructor under the UML 1 4 standard and extensions to that definition accep ted by ArgoUML s
408. s of actions DestroyAction Destroys the specified target object An action is represented on the diagram by the text of its expression d Caution The V0 20 release of ArgoUML only partially implements actions As a practical conven tion it is suggested that call actions are shown as the name of the operation generating the action with any arguments in parentheses and that send actions are shown as the name of the signal generating the action with any arguments in parentheses Return actions should be shown as the expression for the value they return or empty otherwise Create and des troy actions should shown as create target and destroy target Ter minate action should be shown as terminate 20 3 1 Action Details Tabs The details tabs that are active for actions are as follows ToDoItem 282 Statechart Diagram Artifact Reference Standard tab Properties See Section 20 3 2 Action Property Toolbar and Section 20 3 3 Property Fields For Action be low Documentation Standard tab Stereotype Standard tab In the UML metamodel Act ion has no standard stereotypes defined Tagged Values Standard tab In the UML metamodel Act ion has no standard tagged value defined 20 3 2 Action Property Toolbar By GO up Navigate up through the hierarchical structure gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected action navigating
409. s pane shows a typical constraint tab for a ar tifact in ArgoUML in this case a class Figure 13 14 A typical Constraints tab on the details pane ClassA classAAttr int wnn EJ LL 4 1S 4 ToDo Item Properties Documentation Presentation amp Source amp Constraints 4 Tagged Value gs e DIUI UC XX M h Preview Constraint Name newConstraint context ClassA inv constraintOne self classAAttr gt 0 162 The Details Pane Along the top of the tab are a series of icons 3 New Constraint This creates a new constraint and launches the constraint editor in the Constraints tab for that new constraint see Section 13 7 1 The Constraint Editor The new constraint is created with a context declaration for the currently selected artifact iB Warning It seems logical that when a new constraint is created it needs to be edited But ArgoUML V0O 20 fails to start the OCL editor upon creation you have to do this by primo selecting the new constraint first secundo rename it and tertio press the Edit Constraint button It is essental for successfully creating a constraint to follow these 4 steps accurately create select rename edit The step to rename is necessary because the validity check will refuse the constraint if its name differs from the name mentioned in the constraint text For the same
410. s to left right top and bottom which may be dragged to form dependency relationships Component Instance Add a component instance to the diagram For convenience when the mouse is over a selected component instance it displays four handles to left right top and bot tom which may be dragged to form dependency relationships Generalization Add a generalization between two artifacts selected using button 1 from the child to the parent z Realization Add a realization between a class and an interface selected using button 1 mo tion from the realizing class to the realized interface Dependency Add a dependency between two artifacts selected using button 1 motion from the dependent artifact Association Add an association between two artifacts node component class or inter face selected using button 1 motion from the first artifact to the second artifact There are 6 types of association offered here see Figure 12 4 The association tool selector association ag gregation and composition and all these three can be bidirectional or unidirec tional d Caution The constraint that associations between classes and interfaces must not be navigable from the interface still applies on deployment diagrams Cc Object Add an object to the diagram For convenience when the mouse is over a selected ob ject it displays four handles to left right top and bottom which may be dragged to form link rela tion
411. se a Name States The state concerned has been given no name it will appear in the model as anon State Sugges tion that good design requires that all states are named 15 4 11 Choose a Unique Name for a State related Arti fact Suggestion that the state specified has the same name as another in the current statechart diagram which is bad design and will prevent valid code generation 15 4 12 Revise Name to Avoid Confusion Two names in the same namespace have very similar names differing only by one character Sugges tion this could potentially lead to confusion d Caution This critic can be particularly annoying since at times it is useful and good design to have a series of artifacts varl var2 etc It is important to remember that critics offer guidance and are not always correct ArgoUML lets you dismiss the resulting to do items through the to do pane see Chapter 14 The To Do Pane 15 4 13 Choose a Legal Name All artifact names in ArgoUML must use only letters digits and underscore characters This critic sug gests an entity has not met this requirement 15 4 14 Change an Artifact to a Non Reserved Word Suggestion that this artifact s name is the same as a reserved word in UML or within one character of one which is not permitted 15 4 15 Choose a Better Operation Name Suggestion that an operation has not followed the naming convention that operation names begin with lower case letters
412. se meaning it cannot 190 Top Level Artifact Reference Derived models have their value in analysis to introduce useful names or concepts and in design to avoid re computation 16 2 2 Model Property Toolbar By GO up Navigate up through the composition structure of the model Since the model is the top package nothing can happen and this button is allways downlighted m New Package This creates a new Package see Section 18 2 Package within the model which appears on no diagram navigating immediately to the properties tab for that package 27 Tip While it can make sense to create Packages of the model this way it is usually a lot clearer to create them within diagrams where you want them a New DataType This creates a new DataType see Section 16 3 Datatype within the model which appears on no diagram navigating immediately to the properties tab for that DataType H New Enumeration This creates a new Enumeration see Section 16 4 Enumeration within the model which appears on no diagram navigating immediately to the properties tab for that Enumeration gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype within the model navigating imme diately to the properties tab for that stereotype Tif Delete This tool is always downlighted since it is meaningless to delete the model 16 2 3 Property Fields For The Model Name Text box The name
413. see how other users are able to help The users mailing list is an excellent introduction to the live activity of the project If you want to get further involved there are additional mailing lists that cover the development of the product and issues in the current and future releases 3 4 1 6 Running ArgoUML To run ArgoUML depends on whether you use Microsoft Windows or some flavor of Unix On Windows Start an MSDOS shell window by e g using Start Run with command in the text window In the window change to the directory holding your ArgoUML files and type java jar argouml jar This method has the advantage that progress and debugging inform ation is visible in the DOS window Alternatively create a batch file bat containing the above com mand with a shortcut to it on the desktop The batch file should end with a pause statement in case any debugging information is created during a run On some systems simply double clicking on the argoum1 jar file works On others doing so initiates a zip utility Refer to you operating sys tem instructions or help facility to determine how to configure this e On Unix Start a shell window and type java jar argouml jar 3 4 1 7 Problems Running ArgoUML It s unusual to encounter problems if you have made a successful download If you can t solve the prob lem Try the users mailing list see Section 3 4 1 5 Problems Downloading Wrong JRE The most common issue is not hav
414. select multiple artifacts But ton 1 motion will move selected 2D items or add and move a new control point on a link Button 1 motion on a selected component s control point will stretch that component s shape 4 Broom Button 1 motion with this tool provide a broom which will sweep all artifacts along This is a very shortcut way of lining things up The Broom can also be invoked by using SHIFT with button 1 motion when the Select tool is in use The Broom is discussed at length in its own chapter see Section 12 4 The Broom ht Tip Additional control of artifact layout is provided through the Arrange menu see Sec tion 10 7 The Arrange Menu 12 3 2 Annotation Tools The annotation tool Comment is used to add a comment to a selected UML artifact Caution Unlike most other tools you use the Select tool to select an artifact and then button 1 131 The Editing Pane click on Comment to create the comment If no element is selected when the comment tool is clicked then the comment is created and put at the left top corner The comment is created alongside the selected artifact empty by default The text can be selected with button 1 double click and edited from the keyboard The UML standard allows comments to be attached to any artifact You can link any comment to aditional elements using the Comment Link ____ tool 12 3 3 Drawing Tools These are a series of tools for providing grap
415. ships Ew Link Add a link between two artifacts node instance component instance or object selected using button 1 motion The Broom ArgoUML Ss broom alignment tool is specialized to support the needs of designers in achieving the kind of alignment used in UML diagrams It is common for designers to roughly align objects as they are cre ated or by using simple movement commands The broom is an easy way to precisely align objects that are already roughly aligned Furthermore the broom s distribution options are suited to the needs of UML designers making related objects appear evenly spaced packing objects to save diagram space and spreading objects out to make room for new objects The broom also makes it easy to change from horizontal to vertical alignment or from left alignment to right alignment 140 The Editing Pane The T shaped icon in ArgoUML s diagram toolbar invokes the broom alignment tool When the mouse button is pressed while in broom mode the designer s initial mouse movement orients the broom to face in one of four directions north south east or west After that mouse drag events cause the broom to advance in the chosen direction withdraw or grow in a lateral direction Like a real world push broom the broom tool pushes diagram elements that come in contact with it This has the effect of align ing objects along the face of the broom and provides immediate visual feedback see the figure below Unlike
416. since they represent an autonomous physical object 15 8 5 Components normally are inside nodes A suggestion that components represent the logical entities within physical nodes and so should be drawn within a node where nodes are shown on the deployment diagram 15 8 6 Componentinstances normally are inside nodes A suggestion that component instances represent the logical entities within physical nodes and so should be drawn within a node instance where node instances are shown on the deployment diagram 15 8 7 Classes normally are inside components A suggestion that classes as artifacts making up components should be drawn within components on the deployment diagram 15 8 8 Interfaces normally are inside components A suggestion that interfaces as artifacts making up components should be drawn within components on the deployment diagram 15 8 9 Objects normally are inside components A suggestion that objects as instances of artifacts making up components should be drawn within com ponents or component instances on the deployment diagram 15 8 10 LinkEnds have not the same locations A suggestion that a link e g association connecting objects on a deployment diagram has one end in a 181 The Critics component and the other in a component instance since objects can be in either This makes no sense 15 8 11 Set classifier Deployment Diagram Suggestion that there is an instance object without
417. sion and Problem Solving A design visualization theory within cognitive psychology The theory notes that designers must bridge a gap between their mental model of the problem or situation and the formal model of a solu tion or system This theory suggests that programmers will benefit from 1 Multiple representations such as program syntactic decomposition state transitions control flow and data flow These allow the programmer to better identify elements and relationships in the problem and solution and thus more readily create a mapping between their situation models and working system models 2 Familiar aspects of a situation model which improve designers abilities to formulate solutions 3 3 1 2 Practical Application in ArgoUML ArgoUML implements these theories using a number of techniques The design of a user interface which allows the user to view the design from a number of different perspectives and allows the user to achieve goals through a number of alternative routes 2 The the use of processes running in parallel with the design tool evaluating the current design against models of how best practice design might work These processes are known as design critics 3 The use of to do lists to convey suggestions from the design critics to the user as well as allowing the user to record areas for future action 4 The use of checklists to guide the user through a complex process 3 3 2 Open Standards
418. sion points are listed by their location point rather than their name Where an extension point has been created button 1 double click will navigate to that relationship Button 2 gives a pop up menu with two entries e Add The Ad Remove ExtensionPoints window opens In this window it is possible to build a list of extension points New Add a new extension point in the list and navigate to it The current extend relationship is added as the first in list of extending relationships of the new extension point Condition Text area Multi line textual description of any condition attached to the extend relationship 17 10 Include 222 Use Case Diagram Artifact Reference Include is a relationship between two use cases Where A includes B it means B described behavior that is to be included in the description of the behavior of A at some point defined internally by A Examples for a travel agent sales system might be the use case for booking travel which includes use cases for booking flights and taking payment Within the UML metamodel Include is a sub class of Relationship An include relationship is represented as a dotted link with an open arrow head and a label include see Figure 17 1 Possible artifacts on a use case diagram 17 10 1 Include Details Tabs The details tabs that are active for include relationships are as follows Note Lg l There is no source tab since there is no source code that
419. so implements some less common aspects of UML model management In particular the re lationship UML 1 4 defines as Generalization and the sub class dependency Permission for use between packages 18 2 1 Package Details Tabs 227 Class Diagram Artifact Reference The details tabs that are active for packages are as follows ToDoItem Standard tab Properties See Section 18 2 2 Package Property Toolbar and Section 18 2 3 Property Fields For Package below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab The Bounds field defines the bounding box for the package on the diagram Source Standard tab This contains a template package declaration appropriate to the entire package In the future this would be part of the code generation activity Tagged Values Standard tab In the UML metamodel Package has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the package is re dundant it can be formally derived from other elements or false meaning it cannot dete Note C Derived packages still have their value in analysis to introduce useful names or concepts and in design to avoid re computation 18 2 2 Package Property Toolbar By GO up Navigate up through the package structure F4 New Package This creates a new package within the package which appears on no diagram navigating immedi
420. sociation Stereotype 252 Association Tagged Values 251 Attribute 235 of a Class 342 of an Object 342 Attribute Changeability 238 Attribute Details Tabs 235 Attribute Initial Value 237 Attribute Multiplicity 237 Attribute Name 236 Attribute Property Fields 236 Attribute Property Toolbar 236 Attribute Tagged Values 235 Attribute Type 237 Attribute Visibility 238 Base of Include Relationship 225 Base Class of Stereotype 202 Base Use Case of Extend Relationship 222 of Extension Point 215 Basic Flow of Use Case 41 42 Build 12 16 C CASE 342 Changeability of Association End 258 of Attribute 238 Child of Generalization 218 Class 230 342 Class Details Tabs 230 Class Diagram 226 342 Class Method 344 Class Modifiers 233 Class Name 232 Class Property Fields 232 Class Property Toolbar 231 Class Stereotype 233 Class Tagged Values 231 Clients of Dependency 260 Code Generation 70 362 Index Collaboration 343 Collaboration Diagram 343 Collaborator 343 Comprehension xvii 13 343 Concept Class Diagram 343 Concurrency of Operation 242 Connections of Association 252 Constraints in the Vision document 35 Contexts of Signal 248 Contributing to ArgoUML 2 to the User Manual 4 Cookbook 2 Create Diagram Menu 21 Create Diagram Toolbar 22 Create New Action 312 Actor 44 208 Association in a Use Case Diagram 46 DataType 191 Datatype 228 236 240 244 Enumer
421. splay elements which have sub hierarchies may be indicated by RE when the hierarchy is hidden and j when the hierarchy is open When these icons are displayed the display of the hierarchy is toggled by button 1 click on these icons Button 1 click over the headline of any to do item will cause its details to be shown in the To Do Item tab of the details pane That tab is automatically selected if it is not currently visible 14 2 2 Button 1 Double Click When applied to the folder icon alongside a hierarchy category this will cause the display of that hier archy to be toggled When applied to a headline button 1 double click will show the diagram for the artifact to which the to do item applies in the editing pane and select the artifact on the diagram using an appropriate clarifier the artifact may be highlighted underlined with a wavy line or surrounded by a colored box as appro priate 14 2 3 Button 2 Actions There are no button 2 functions in the to do pane 14 2 4 Button 2 Double Click There are no button 2 functions in the to do pane 14 3 Presentation Selection At the top of the pane is a drop down selector controlling how the to do items are presented The to do items may be presented in six different ways This setting is not stored persistently i e it is on its default vallue when ArgoUML is started By Priority This is the default setting The to do items are organized into three hierarchies by prio
422. ssociation to a third class The current implementation of ArgoUML does not allow the inverse drawing from a 3rd class towards an existing association is not possible Association Classes are drawn exactly like a normal association i e between two classes but with a dif ferent dedicated tool from the diagram toolbar 18 11 2 Association Details Tabs The details tabs that are active for associations are as follows ToDoItem Standard tab Properties See Section 18 11 3 Association Property Toolbar and Section 18 11 4 Property Fields For As sociation below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab z Note LER l The values for the bounds of the Association have no meaning since they are determ ined by the location of the connected items Changing them has no effect on the dia gram 250 Class Diagram Artifact Reference Source Standard tab You would not expect to generate any code for an association and any code entered here is ignored it will have disappeared when you come back to the association Tagged Values Standard tab In the UML metamodel Association has the following standard tagged values defined persistence Values transitory indicating state is destroyed when an instance is des troyed or persistent marking state is preserved when an instance is destroyed derived from the superclass ModelElement Values true
423. stance s s s iess eiers ri mem eme mee mee hene 329 23 5 1 Component Instance Details Tabs 0 ceeeceee cece eeeen es 330 23 5 2 Component Instance Property Toolbar esses 330 23 5 3 Property Fields For Component Instance esses 331 23 0 Dependency oie et cdecd oeebth mw etta uno reet ko ser oo Cure tec densus 332 PANEG M A bah as Ree Saadeh wok Malaya Ge heh EE EEA 332 238 terface E 332 23 9 eb MEE 332 23310 ODJect e ves reo be Rt PORTE Ge siaag E TaS 333 PENNE NU ot 333 24 Built In DataTypes Classes Interfaces and Stereotypes ssesesesssss 334 24 T Introduction 2x2 iecore reper Y derer iet ese sedeo idee tn 334 24 1 1 Package Structure oret rome hte Etre 334 XV ArgoUML User Manual 24 1 2 Exposure in the model ssss a S 336 24 2 Built In Datatypes eb oio tet Pei ied eere 336 24 5 Built Ini Classes 25er ere UNE et oles eninge UNSER 336 24 3 1 Built In Classes From java 1lang eee 337 24 3 2 Built In Classes From java math eee 337 24 3 3 Built In Classes From java net eee HH 337 24 3 4 Built In Classes From java util eee 337 24 4 Built In Interfaces iere rm REC r SR ERR REV EERERREEPIR SE EP URTSR RR 337 24 5 Built In Stereotypes sisien nna rie ere uerbo speeds ge eren E 338 GIOSSALY poems teet eo Dette teo b o pP Rb Et sebo te saaaeag E tus 342 A
424. stomer s account will not support the withdrawal A 3 Communication to the central computer is down A 4 The customer cancels the transaction A 5 The customer fails to take the dispensed cash 42 Requirements Capture Subsequently we flesh out each alternate flow by reference to the basic flow For example the first al ternate flow might look like A A 1 Customer does not require a receipt A 1 At step 1 of the basic flow the customer indicates they do not want a receipt A 1 The basic flow proceeds from step 2 to step 4 and step 5 is not used 2 The convention is to number the various alternate flows as A 1 A 2 A 3 etc The steps within an altern ate flow are then numbered from this So the steps of the first alternate flow would be A 1 1 A 1 2 A 1 3 etc 4 3 3 3 Iterative Development of Use Case Specifications 4 3 4 Iterative development will prioritize the use cases and the first iterations will address the most import ant Early iterations will capture the basic flows of the most important use cases with only essential detail and list the headings of the main alternate flows Later iterations will address the remaining use cases flesh out the steps on individual alternate flows and possibly provide more detail on individual steps Supplementary Requirement Specification This captures the non functional requirements or constraints placed on the system Since use cases are inherently functiona
425. sults in the following e Account e Audit trail Bank Cash e Customer CRC Cards The project manager convenes a CRC session at which the initial set of classes are to be defined The fa cilitator reminds the participants that we are in the analysis phase and are only interested in what needs to be done at the business level and are to leave out anything that smacks of how to do it As a general rule of thumb this means a subset of the nouns from the problem statement see above The group starts with a complete list of all of the nouns in the statement examines each one and decides which are inap propriate crossing them off the list Each class is then assigned to one of the participants 57 Analysis to be continued 5 10 2 Concept Class Diagrams To be written To be written 5 10 2 1 Identifying classes To be written To be written 5 10 2 2 Identifying associations To be written To be written 5 10 3 System Sequence Diagrams To be written To be written 5 10 3 1 Identifying actions To be written To be written 5 10 4 System Statechart Diagrams To be written To be written 5 10 5 Realization Use Cases To be written To be written 58 Chapter 6 Design We now have the problem we are trying to solve specified in the language of a putative solution In the Design Phase we construct all the details of that solution The blurred boundary
426. t Preferred Size This menu item acts on all selected items on the current diagram It resets all sizes of all artifacts to its preferred size i e the minimum size for which all text fits inside 10 7 6 Toggle Auto Resizing This menu item is a checkbox that currently does not do anything 10 7 7 Layout This menu item provides an automatic diagram layout function i e when activating this menu item all items on the current class diagram are rearranged according a certain layout algorithm This function currently only works for classdiagrams For all other types of diagrams the menu item is downlighted 10 8 The Generation Menu This menu provides support for code generation from UML diagrams The functionality is built around the structural information of class diagrams 110 The Menu bar m Note Without any plugin modules installed ArgoUML supports only code generation of Java ArgoUML V0 20 supports the following languages by plugin C C php4 phpS E Warning Code generation is still very much a work in progress The current version of ArgoUML will generate a structural template for your code but is not able to handle behavioral spe cifications to generate code for the dynamic behavior of the model 10 8 1 Generate Selected Classes This menu entry brings up a dialog box for the ArgoUML code generator see Figure 10 21 The dialog for Generate Selected Classes Figure 10 21 The
427. t all levels e Statechart diagram Used to show the dynamic behavior of a single object class instance This diagram is of particular use in systems using complex communication protocols such as in tele communications See Chapter 20 Statechart Diagram Artifact Reference for details of the ArgoUML statechart diagram and the artifacts it supports e Activity diagram Used to show the dynamic behavior of groups of objects class instance This diagram is an alternative to the statechart diagram and is better suited to systems with a great deal of user interaction See Chapter 22 Activity Diagram Artifact Reference for details of the ArgoUML activity diagram and the artifacts it supports Interaction diagrams There are two diagrams in this category used to show the dynamic inter action between objects class instances in the system e Sequence diagram Shows the interactions typically messages or procedure calls between instances of classes objects and actors against a timeline Particularly useful where the tim ing relationships between interactions are important See Chapter 19 Sequence Diagram Ar tifact Reference for details of the ArgoUML sequence diagram and the artifacts it supports Collaboration diagram Shows the interactions typically messages or procedure calls between instances of classes objects and actors against the structural relationships between those instances Particularly suitable where it is useful to
428. t deal of inertia due to the long time use of pure raster formats and other formats like Macromedia Flash or Java applets but also browser support is still uneven with native support in Opera and Firefox but Safari and Internet Explorer re quire a plugin See PGML above 3 3 2 3 Object Constraint Language OCL Object Constraint Language OCL http en wikipedia org wiki Object Constraint Language is a de clarative language for describing rules that apply to UML models It was developed at IBM and is now part of the UML standard Initially OCL was only a formal specification language extension to UML OCL may now be used with any Meta Object Facility MOF compliant metamodel including UML The Object Constraint Language is a precise text language that provides constraint and object query ex 14 3 3 3 3 3 4 UML Based OOA amp D pressions on any MOF model or metamodel that cannot otherwise be expressed by diagrammatic nota tion 100 Pure Java Java was conceived as an interpreted language It doesn t have a compiler to produce code for any par ticular target machine It compiles code for its own target the Java Virtual Machine JVM Writing an interpreter for a JVM is much easier than writing a compiler and such machines are now in corporated into almost every Web Browser As a result most machines can run Java with no further work In case you wonder why all languages aren t like this it is because interpr
429. tation e Source Constraints e Stereotype Tagged Values e Checklist Remove images tutorial detailsoverview gif from file system 20 UML Based OOA amp D 3 4 2 4 The To Do Pane Note Reading assignment e Describe priorities e Resolving items Relation to ToDo Item tab in details pane e Remove images tutorial todooverview gif from file system 3 4 2 5 The Menu Bar and Toolbars The menu bar and toolbars gives access to all the main features of ArgoUML As is conventional menu options and toolbar options that are not available are grayed out and menu items that invoke a dialog box are followed by an ellipsis File menu This allows you to create a new project save and open projects import sources from elsewhere load and save the model to and from a database print the model save the graphics of the model save the configuration of the model and exit ArgoUML Edit menu This allows you to select one or more UML items on a diagram undo and redo edits re move items from diagrams or the whole model empty the trash and change settings View menu This allows you to switch between diagrams find artifacts in the model zoom in a dia gram select a particular diagram representation although at present there is only one select a par ticular tab in the details menu adjust the grid view buttons on a selection and switch between UML and Java notation Create Diagram menu This a
430. te which joins two or more concurrent transitions into a single transition d Caution The incoming transitions should not have guards However ArgoUML will not enforce this A join is represented on the diagram as a solid black by default horizontal bar Tip This bar can be made vertical by selecting the join and dragging with button 1 one of its corners 20 18 Shallow History Shallow History is a pseudostate see Section 20 11 Pseudostate that can remember the last state of its container that was active The history pseudostate points to its default state with a transition arrow just like the initial pseudostate does This transition points to the substate that will become active when there is no history When the container composite state has been active before i e when there is his tory the substate that was active when the container state was exited becomes active again When placed within a multi level hierarchy of composite states the shallow history only remembers the history for states that have the same container as the history pseudostate It does not restore substates deeper in the hierarchy then the history pseudostate itself A shallow history is represented on the diagram as a circle containing the letter H 20 19 Deep History Deep History is a pseudostate see Section 20 11 Pseudostate that can remember the last state of its container that was active The history pseudostate points to its
431. ted using but ton 1 motion from the first artifact to the second Datatype Add a datatype to the diagram For convenience when the mouse is over a selected datatype it displays handles at the top and at the bottom which may be clicked or dragged to form a generalization relationship the target being another datatype There are 2 other elements available here B Enumeration and ee Stereotype These two have similar handles except the one at the top of a stereotype when clicked it creates a metaclass connected by a dependency marked with stereotype This eases the creation of stereotype declaration diagrams see the literature on the subject 135 The Editing Pane 12 3 6 Sequence Diagram Specific Tools Seven tools are provided specific to UML artifacts on sequence diagrams The detailed properties of these artifacts are described in the section on sequence diagram artifacts see Chapter 19 Sequence Dia gram Artifact Reference 12 3 7 ClassifierRole Add a classifierrole to the diagram Message with Call Action Add a call message between two classifierroles selected a using button 1 motion from the originating classifierrole to the receiving classifierrole I Message with Return Action Add a return message between two classifierroles se a lected using button 1 motion from the originating classifierrole to the receiving classifierrole 3j Message with Create Action Add a create mess
432. tension point to a use case 1 Select the use case on the editing pane with button 1 click Then click on the Add Extension Point icon eu on the toolbar and a new extension point with default name and location will be added after any existing extension points ce Note The Add Extension Point icon is grayed out and unusable until a use case is selected 2 Select the use case on the editing pane with button 1 click and then select its property tab in the de tails pane A button 2 click over the Extension Points field will bring up a context sensitive pop up menu Select Add to add a new extension point If any extension points already exist they will be shown in this field on the property tab The new extension point will be inserted immediately before the entry over which the pop up menu was in voked This ordering can be changed later by using the Move Up and Move Down entries on the pop up menu Whichever method is used the new extension point is selected and its property tab can be displayed in the details pane The name and location of the extension point are free text set in the corresponding fields of the property tab An existing extension point can be edited from its property tab The property tab can be reached in two ways 1 If the extension point compartment for the use case is displayed on the diagram select the use case with button 1 click and then select the extension point with a further butto
433. ter 4 of Jason Robbins PhD disseration ht tp argouml tigris org docs robbins dissertation diss4 html In particular look at Figure 1 6 in this chapter and the related discussion A suggested implementation is that the conditions could be written in OCL against the UML meta model A library of predefined conditions and steps would allow end users to build new critics by combining those in novel ways d Caution In the V0 20 version of ArgoUML this function is not implemented and this button is always grayed out It is for future development Finally the bottom right of the dialog contains a button labeled OK Button 1 click here dismisses the dialog 10 10 The Tools Menu This menu provides a generic menu attachment point for any plug ins provided with ArgoUML The standard system has no plug in and this menu entry is empty by default 10 11 The Help Menu This menu provides help on the use of ArgoUML It has two entries 117 The Menu bar 10 11 1 System Information This menu entry brings up the system information dialog see Figure 10 25 The dialog for Sys tem Information Figure 10 25 The dialog for System Information wi System Information Java Version 1 5 0 02 Java Vendor Sun Microsystems Inc Java Vendor URL http java sun com Java Home Directory C Program Files Java jre1 5 0 02 Java Classpath C Documents and Settings Michiel My Doc Operation System Windows XP Version
434. tereotype Drop down selector Interface is provided by default with the UML standard stereotypes for the par ent meta class Classifier metaclass powertype process threadand utility Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows changing the namespace for the interface This is the pack age hierarchy 262 Class Diagram Artifact Reference Modifiers Check box with entries Abstract Leaf and Root e Abstract is used to declare that this interface cannot be instantiated but must always be spe cialized The name of an abstract interface is displayed in italics on the diagram d Caution This is meaningless since by definition an interface is an abstract entity The UML 1 3 standard offers no clarification Leaf indicates that this interface cannot be further specialized while Root indicates it can have no generalizations Visibility Radio box with three entries public protected private and package Indicates whether navigation to this end may be by i any classifier ii only the source classifier and its children or iii only by the source classifier Generalizations Text area Lists any interface that generalizes this interface Button 1 double click navigates to the generalization and opens its property tab Specializations Text box Lists any
435. tes operations or associations 15 7 State Machines Critics concerning state machines ArgoUML has the following critics in this category 15 7 1 Reduce Transitions on state Suggestion given state is involved in so many transitions it may be a maintenance bottleneck The Wizard of this critic allows setting of the treshold i e the maximum number of transitions allowed before this critic fires d Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more transition until the critic fires again Restarting ArgoUML resets this number to its default 10 15 7 2 Reduce States in machine lt machine gt Suggestion that the given state machine has so many states as to be confusing and should be simplified perhaps by breaking into several machines or using a hierarchy The Wizard of this critic allows setting of the treshold i e the maximum number of states allowed be fore this critic fires D Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more states until the critic fires again Restarting ArgoUML re sets this number to its default 20 15 7 3 Add Transitions to lt state gt Suggestion that the given state requires both incoming and outgoing transitions 15 7 4 Add Incoming Transitions to lt artifact gt 178 The Critics Suggestion that
436. that all the classifiers attached to the ends of the association should belong to the same namespace as the association If this were not the case there would be no naming by which each end could refer to all the others This critic is triggered when an association does not meet this criterion The solution is to delete the as sociation and recreate it on a diagram whose namespace includes those of all the attached classifiers qd Caution In the current implementation of ArgoUML this critic does not handle hierarchical namespaces As a consequence it will trigger for associations where the immediate namespaces of the attached classifiers is different even though they are part of the same namespace hierarchy 15 11 2 Add Elements to Package package Suggestion that the specified package has no content Good design suggests packages are created to put things in Note Lg This will always trigger when you first create a package since you cannot create one that is not empty 15 12 Expected Usage Critics concerning generally accepted good practice in ArgoUML The current version of ArgoUML has one critic in this category 15 12 1 Clean Up Diagram This critic is discussed under an earlier design issues category see Section 15 3 3 Clean Up Diagram 15 13 Methods 184 The Critics Critics concerning operations in ArgoUML The current version of ArgoUML has the following critics in this category
437. that implies a macro like expansion by another state machine and is semantically equivalent to a com posite state The state machine that is inserted is called the referenced state machine while the state ma chine that contains the submachine state is called the containing state machine The same state machine may be referenced more than once in the context of a single containing state machine In effect a sub machine state represents a call to a state machine subroutine with one or more entry and exit points The entry and exit points are specified by stub states SubmachineState is a child of State The submachine state is depicted as a normal state with the additional include declaration above and separated by a line from its internal transitions compartment The expression following the include reserved word is the name of the invoked submachine ArgoUML currently only supports a horizontal division of a concurrent composite state in regions The description of the details panels of a concurrent region is almost identical to that of a composite state see Section 20 4 Composite State and so is not duplicated here The only difference is one addi tional field Submachine Drop down selector Allows selecting the submachine included within this composite state Stub State A stub state only appears on a submachine state A submachine state represents the invocation of a state machine defined elsewhere In the general case an invoke
438. the calls iii manage the system and iv bill the customer The software process can then be reapplied to each of these four components to identify their design OOA amp D with its clean boundaries to objects naturally supports this approach Such OOA amp D with re cursive development is sometimes abbreviated as OOA amp D RD Recursive development can be applied equally well to waterfall or iterative processes It is not an altern ative to them A Development Process for This Manual For the purpose of this manual we will use a stripped down iterative process with recursive develop ment loosely akin to RUP The case study will take us through the first iteration although at the end of the tutorial section of the manual we will look at how the project will develop to completion Within that first iteration we will tackle each of the requirements capture analysis design and build activities in turn Not all parts of the process are based on UML or ArgoUML We will look at what oth er material is needed outside Within this process we will have an opportunity to see the various UML diagrams in use The full range 11 UML Based OOA amp D of UML diagrams and how they are supported is described in the reference manual see Section 16 6 Diagram 3 2 2 1 Requirements Capture Our requirements capture will use the UML concept of Use Cases Starting with a Vision Document we will see how Use Cases can be developed to descr
439. the explorer pane because both are tree structures If the details pane is the current pane The function only works when the cursor is in certain fields where selecting is possible e g a Name field In such a case the Select All function extends the current selection to the whole field contents Navigate Back ArgoUML keeps a record of the artifacts that you have been selecting while navigating the model This button moves you back to the previous one selected If there are no more previous artifacts the button is grayed out 94 The Menu bar Navigate Forward ArgoUML keeps a record of the artifacts that you have been selecting while navigating the model This button moves you forward to the next one selected after you have used the Navigate Back button to move back If there are no more next artifacts the button is grayed out e Invert Selection This inverts the current selection on the current pane More exact everything that was selected is de selected and everything that was not selected within the current pane is selected 10 4 2 iv Remove From Diagram Shortcut Delete This removes the currently selected item s from the diagram but not from the model The modelelement can be re added to the diagram by button 2 click on the modelelement in the ex plorer or by dragging it onto the diagram 10 4 3 if Delete From Model Shortcut Ctrl Delete This function deletes the selected item s from the
440. the filter are listed The available filters are listed below The default filter is the first one which combines all available formats e ArgoUML file zargo uml xmi xml zip e ArgoUML compressed project file zargo e ArgoUML project file uml XML Metadata Interchange xmi XML Metadata Interchange xml e XMI compressed project file zip 10 3 3 z Save Project Shortcut Ctrl S This saves the project using its current file name Use Save Project As to save the project to a different file If no filename is given yet e g after New then this function works exactly as Save Project As 84 The Menu bar m Note In certain circumstances there is nothing to save and this menuitem is downlighted E g when the user did not yet alter a loaded project The presence of a in the titlebar of ArgoUML s window indicates that the current project is dirty has been altered and can be saved 10 3 4 ig Save Project As This opens a dialog allowing you to save the project under a different file name or to specify a file name for the first time if the project is a new project The dialog box is almost identical to that for Open Project see Figure 10 2 The file selection dia log for Open Project The extension of the filename is automatically set 10 3 5 Revert to Saved This menu item allows you to throw away all your recent changes and reload the last saved
441. the given state requires incoming transitions 15 7 5 Add Outgoing Transitions from lt artifact gt Suggestion that the given state requires outgoing transitions 15 7 6 Remove Extra Initial States Suggestion that there is more than one initial state in the state machine or composite state which is not permitted in UML 15 7 7 Place an Initial State Suggestion that there is no initial state in the state machine or composite state 15 7 8 Add Trigger or Guard to Transition Suggestion that a transition is missing either a trigger or guard one at least of which is required for it to be taken 15 7 9 Change Join Transitions Suggestion that the join pseudostate has an invalid number of transitions Normally there should be one outgoing and two or more incoming 15 7 10 Change Fork Transitions Suggestion that the fork pseudostate has an invalid number of transitions Normally there should be one incoming and two or more outgoing 15 7 11 Add Choice Junction Transitions Suggestion that the branch choice or junction pseudostate has an invalid number of transitions Nor mally there should be at least one incoming transition and at least one outgoing transition 15 7 12 Add Guard to Transition Suggestion that the transition requires a guard d Caution It is not clear that this is a valid critic It is perfectly acceptable to have a transition without a guard the transition is always taken when the trigger is in
442. them The term CRC card is also used to refer to a methodology for object oriented modeling based on their use Kent Beck and Ward Cunningham introduced CRC cards in a paper A Laboratory for Teaching Object Oriented Thinking that was presented at the OOPSLA Object Oriented Programming Systems Lan guages amp Applications conference in 1989 A tutorial on the subject can be found at ht tp www csc calpoly edu dbutler tutorials winter96 crc_b The CRC card methodology was originally designed as a teaching tool but has proved useful as a modeling tool as well The three parts of the CRC acronym were felt by the authors of the paper to represent the essential di mensions of object oriented modeling The term Responsibilities refers to the contract that the class un der discussion offers to the rest of the world Interface and Contract are similar concepts Responsibilit ies model the things that a class can do Services Methods or Operations will result from these The term Collaborators refers to the classes whose services the class under discussion will use Kent Beck tried unsuccessfully to use ther term Helpers instead of Collaborators to indicate classes that were sup porting the class under discussion It is widely believed that the terminology was chosen because CRC are the initials of Ward Cunningham s son Why use CRC cards e They are portable No computers are required so they can be used anywhere Even away from the of fic
443. this point you should create a directory to contain your project Name the directory anything you feel is consistent with the rest of your file system You should name the contents and any subdirectories as directed for reasons that will become apparent The state of the model at the end of key sections will be available in zargo files These are available so that you can play with various alternatives and restore yourself back to the proper state of the model in your work area These zargo files will be identified at the end of the sections whose work they repres ent The case study will be an ATM system Your company is FlyByNight Industries You are going to play two roles That of the Project Manager and that of the Designer Analyst We are not going to build a physical ATM of course First you will become familiar with the feel of the product and then we will go through an analysis and development process for a test case How your company arranges its work into projects is usually determined as much by politics as anything else and is therefore out of the scope of this document We will go into how you structure the project it self once one has been defined Chapter 3 UML Based OOA amp D In this chapter we look at how UML as a notation is used within OOA amp D 3 1 Background to UML Object orientation as a concept has been around since the 1960 s and as a design concept since 1972 However it was in the 1980 s that it
444. though the design critics will advise otherwise it is perfectly normal not to name associations on a class diagram since the relationship is often obvious from the classes or class and interface name Stereotype Drop down selector Association is provided by default with the UML standard stereotype for Asso ciation implicit Stereotyping can be useful when creating associations in the problem domain requirements cap ture and solution domain analysis as well as for processes based on patterns The stereotype is shown between and below the name of the association on the diagram Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Namespace Drop down selector Records and allows changing the namespace for the association This is the package hierarchy Connections Text area Lists the ends of this association An association can have two or more ends For more on association ends see Section 18 12 Association End The names of the association ends are listed unless the association end has no name the case when it is first created in which case anon AssociationEnd is shown Note The only representation of association ends on a diagram is that their name appears at the relevant end of the corresponding association Button 1 double click on an association end will navigate to that end Association Ro
445. tic Class org argouml uml cognitive critics CrNoTriggerOrGuard Add Associations to lt ocl self lt ocl no Add Choice Junction Transitions no Add Constructor to lt ocl gt self lt ocl no Priority Medium Add Elements to Package lt ocl self lt ocl gt no Add Guard to Transition no Add Incoming Transitions to lt ocl self lt ocl no Description Add Instance Variables to lt ocl gt self lt ocl gt no Add Operations to lt ocl self ocl no Add Outgoing Transitions from lt ocl self lt ocl gt no Add Transitions to socl gt selfs ocl gt no Headline Add Trigger or Guard to Transition More Info Imanual html critics CrNoTriggerOrGuard The highlighted Transition is incomplete because it has no trigger or guard condition Triggers are events that cause a transition to be taken Guard Aggregate End Role in 3 Way or more Ass conditions must be true for the Capitalize Class Name lt ocl self lt ocl gt Use Clarifier Always Change lt ocl self ocl gt to a Non Reserved Wo Change Fork Transitions Change Join Transitions Close This dialog controls the behavior of individual critics To the left is a list of all the critics to enable them to be switched on or off individually For each critic there are three columns labeled Active Head line and Snoozed The first of these is a check box which may be toggled with button 1 click The second is th
446. tion 18 12 2 Association End Property Toolbar and Section 18 12 3 Property Fields For Association End below Documentation Standard tab See Section 13 4 Documentation Tab Presentation Standard tab Source Standard tab This tab contains a declaration for the association end as an instance of the artifact to which it is connected Tagged Values Standard tab In the UML metamodel AssociationEnd has the following standard tagged val ues defined e derived from the superclass ModelElement Values t rue meaning the association end is redundant it can be formally derived from other elements or false meaning it cannot 253 Class Diagram Artifact Reference Tip Derived association ends still have their value in analysis to introduce useful names or concepts and in design to avoid re computation However the tag only makes sense for an association end if it is also applied to the parent association Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 18 12 2 Association End Property Toolbar Go up Navigate up to the association to which this end belongs Go Opposite This navigates to the other end of the association New Qualifier Lt This creates a new Qualifier for the selected association end navigating immediately to the proper ties tab for that q
447. tion Use Case Reflection in Action An instance of a Class Classes and objects in UML are represented on Activity Diagrams Class Diagrams Collaboration Diagrams and Sequence Diagrams Object Constraint Language A language for describing constraints within UML The Object Management Group An international industry standard ization body Best known for CORBA and UML Object Oriented Analysis and Design An approach to software problem analysis and design based on objects which encapsulate both data and code See See Section 1 1 1 Object Oriented Analys is and Design or any standard textbook on Software Engineering UML is a notation to support OOA amp D A theory within cognitive psychology suggesting that although de signers plan and describe their work in an ordered hierarchical fash ion in actuality they choose successive tasks based on the criteria of cognitive cost Simply stated designers do not follow even their own plans in order but choose steps that are mentally least expens ive among alternatives A sub window within the main window of the ArgoUML user inter face A Use Case where the Use Case Diagram and Use Case Specifica tion are in the language of the solution domain rather than the prob lem domain A theory within cognitive psychology which observes that designers of complex systems do not conceive a design fully formed Instead they must construct a partial design evaluate reflect on
448. tionship has been created button 1 double click will navigate to that relation ship Includes Text box Lists any use case that this use case includes Where an include relationship has been created button 1 Double Click will navigate to that relation ship Association Ends Text box Lists any association ends see Section 18 11 Association of associations connected to this use case Button 1 double click navigates to the selected entry 17 4 Extension Point An extension point describes a point in a use case where an extending use case may provide additional behavior Examples for a travel agent sales system might be the use case for paying for a ticket which has an ex tension point in the specification of the payment Extending use cases may then extend at this point to pay by cash credit card etc Within the UML metamodel Extension Point isa sub class of ModelElement A use case may display an extension point compartment see Section 17 3 Use Case for details in which extension points are shown with the following syntax name location 17 4 1 Extension Point Details Tabs The details tabs that are active for extension points are as follows ToDoItem Standard tab Properties See Section 17 4 2 Extension Point Property Toolbar and Section 17 4 3 Property Fields For Extension Point below Documentation Standard tab See Section 13 4 Documentation Tab Source Standard tab
449. to the left of the row of drop down menus General General OCL constructors Entries inv inserts an invariant pre inserts a pre condition post inserts a post condition self inserts a self reference pre inserts a refer ence to a value at the start of an operation and result inserts a reference to a previous result e Basic Operators Relational operators and parentheses Entries lt gt lt gt lt gt and e Numbers Arithmetic operators and functions Entries mod div abs max min round and floor Strings String functions Entries concat size toLower toUpper and substring 165 The Details Pane Booleans Logical functions Entries or and xor not implies andif then else Collections Operators and functions on collections bags sets and sequences The large num ber of functions are organized into sub groups e General Functions that apply to all types of collection Entries Collection insert a new collection Set insert a a new set Bag insert a new bag Sequence insert a new sequence size count isEmpty notEmpty includes includesAll iterate exists forAll collect select reject union intersection including excluding and sum e Sets Operators and functions that apply only to sets Entries set difference and symmet ricDifference Sequences Functions that apply to sequences Entries first
450. tool bar 8 3 1 Re sizing Panes You can re size panes by dragging on the divider bars between them To indicate this possibility the mouse cursor changes shape when hovering over the divider bars In addition you will see there are two small left pointing arrows within the vertical divider bars one at the top of the vertical divider bar between explorer and editing pane and one at the top of the vertical di 77 Introduction vider bar between to do pane and details pane Button 1 click on the first of these will expand the editing pane to the full width of the window button 1 click on the second will expand the details pane to the full width of the window There is also a small downward pointing arrow within the horizontal divider bar at its leftmost end Clicking on this will expand the explorer and editing panes to the full depth of the window By using both the top arrow on the vertical divider and the arrow on the horizontal divider it is possible to expand the editing pane to use the entire window The original configuration can be restored by clicking again on these arrows which are now located at the edge of the window 8 4 The status bar The status bar is at the very bottom of the ArgoUML window and is used to display short advisory mes sages In general such messages are self explanatory It is e g used for displaying parsing error messages in case a text entered on the diagram can not be interpreted 78
451. traints on Classes and Features Attributes Operations Receptions and Methods so this tab is grayed out Tagged Values Standard tab In the UML metamodel Stimulus has the following standard tagged values defined derived from the superclass ModelElement Values t rue meaning the stimulus is re dundant it can be formally derived from other elements or alse meaning it cannot Note Derived stimuli still have their value in analysis and design to introduce useful names or concepts and in design to avoid re computation Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML 19 3 2 Stimulus Property Toolbar By GO up Navigate up through the package structure Tif Delete This deletes the stimulus from the model 272 Sequence Diagram Artifact Reference e Warning This is a deletion from the model nor just the diagram To delete an stimulus from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 19 3 3 Property Fields For Stimulus Name Text box There is no convention for naming stimuli and it is quite normal to leave them unnamed The action is sufficient identification i Tip It is sometimes useful to give simple names to stimuli so they can be referred to in at tached notes giving timing constraints Actio
452. try brings up a sub entry which allows scaling the view of all diagrams to a factor of its normal size This setting is not saved persistently The sub menu items that can be selected are 105 The Menu bar Zoom Out Shortcut Ctrl Minus Gives more overview over the drawing Zoom Reset Returns to the default zoom ratio i e 100 Zoom In Shortcut Ctrl Equals Makes the items on the drawings bigger 10 5 4 Adjust Grid This cycles the grid representation on the screen through the following sequence dots at 16 pixel spacing the default e dots at 32 pixel spacing e no grid of any form full grid at 16 pixel spacing and e full grid at 8 pixel spacing 10 5 5 Adjust Grid Snap This cycles the spacing of grid snapping through the following sequence e snap at 8 pixel spacing the default e snap at 16 pixel spacing snap at 32 pixel spacing and snap at4 pixel spacing Note x E F There is no option to turn off snap to grid altogether d Caution In the V0 22 version of ArgoUML this is not actually a true snap to grid It just defines the increments by which artifacts are moved around Thus if an item has an X coordinate of 4 and Grid Snap is set to 8 moving will take it to X coordinates of 12 20 28 etc not 8 16 24 etc If you wish to align on true grid snap boundaries you can use the Ar range gt Align To Grid menu see Section 10 7 1 Align 10 5 6 Page Breaks This t
453. tten acere eret rrr hex Peter 68 6 15 3 Class Diagrams To be written eseseeeen 68 6 15 4 Sequence Diagrams To be written esse 69 6 15 5 Collaboration Diagrams To be written esses 69 6 15 6 Statechart Diagrams To be written eene 69 6 15 7 Activity Diagrams To be written ssA 69 6 15 8 The Deployment Diagram To be written 2 0 0 0 cece ee eese 69 6 15 9 The System Architecture To be written sees 69 7 Code Generation Reverse Engineering and Round Trip Engineering 70 Pelt reU TENERE ELTERN 70 7 2 Code Generation more r eee e OE eo EE ree ee deh EXE se es 70 7 2 1 Generating Code from the Static Structure esses 70 7 2 2 Generating code from interactions and state machines 71 7 3 Code Generation in ArgoUML sse 72 VES MEEDUNIOCIU MDC Enn 72 7 3 2 Interactions and statechart diagrams seeee 72 7 4 Reverse Engineer iee o eye eee Y rete dedere yore dre reds 72 7 5 Round Trip Engineering eie nme ter Creer E aE IRSE Rees 72 vi ArgoUML User Manual 2 User Interface Reference lt i etie eerte ee tee terit ee eH RE ER VE ie See Va knees 73 MB oigo enirn EE 74 8 1 Overview of the Window ssssssssseseeee eem e m ee hene nhe 74 8 2 General Mouse Behavior in ArgoUML sese
454. two are separated by two small arrow buttons which control the size of the boxes J Shrink Left Button 1 click on this icon shrinks the box on the left Its effect may be reversed by use of the Shrink Right button see below Shrink Right Button 1 click on this icon shrinks the box on the right Its effect may be re versed by use of the Shrink Left button see above Finer control can be achieved by using button 1 motion to drag the dividing bar to left and right The box on the left is titled Constraint Name and lists all the constraints if any so far defined for the selected artifact A constraint may be selected by button 1 click The box on the right is labeled Preview and contains the text of the constraint This box only shows some contents if a constraint is selected Where a constraint is too large for the box a scroll bar is provided to the right 13 7 1 The Constraint Editor This is invoked through the use of the Edit Constraint button on the main Constraints tab The constraint editor takes up the whole tab see Figure 13 16 Dialog box for configuring constraints Figure 13 16 Dialog box for configuring constraints 164 The Details Pane 4 44 ToDo Item Properties Documentation Presentation Source Constraints 4 Tagged Values Checklist xv m Syntax Assistant General v Basic Operators wv Numbers v Strings v Booleans vv Collections v Edit constraint
455. ty eoa a so EM 146 AS LED T 147 12 10 1 Notation Languages Soissons eet a e I 147 12 10 2 Notation Editing on the diagram sees 147 12 10 3 Notation Parsing 2 eee oe eR ted 148 I3 TheiDetails Pane 5 deron etre rrr rr Er ERES FIRE IRR y naa eda 149 T3 Introduction 5 iieeio iere Seer eee tv evertere EEA See Er e TIERE EE nS 149 13 2 To Do tem Tab 5c it EG p CERTE EORR SERRE PREMIER TE 149 13 2 1 Wazatds eee epe ipte eret pen EES 153 13 22 The Help Button ertet Re gir ye 153 13 3 Properties Tab iR recent decetero ter ou Pee EN 154 13 4 Documentation Tab ccce e a Ee E E eene nennen nnne 155 13 5 Presentation Tab s anes eed cto cete Ceo Uter use oo Cased nde oe etnies Ke EA UTE e Poo eo Gees 156 13 6 Source Tab sire re HE eter e xeP ede Er ene Er 160 1357 Constraints ECTS T 161 13 7 1 The Constraint Editor eese 164 13 8 Stereotype TAD se oer ee tee rto proe deeds perte E eet dss seed 166 13 9 Tagged Values Tab eet eee terere egeret ooi he RR 167 13 10 Checklist Tab 54 tr te EI tt E Poe Ceo TEE 167 T4 The To Do Pane 5 5 enr oit retire Rees EEES REES 169 14 1 ntroductlOn s osi ete eerte Rr PR re RR PRSE em po ERR aiiken 169 14 2 Mouse Behavior in the To Do Pane sese 169 14 2 1 Button IS CUCK n etr rmx metere ett age 169 ix ArgoUML User Manual 14 2 2 Button 1 Double Click sess 170 14 2 3
456. ty panel see Section 16 5 Stereotype Association Text box Records the parent association for this association end Button 1 double click on this entry will navigate to that association Type Drop down selector providing access to all standard UML types provided by ArgoUML and all new classes created within the current model This is the type of the entity attached to this end of the association 4 Tip By default ArgoUML will select the class of the artifact to which the linkend is con nected However an association can be moved to another class by selecting another entry here Multiplicity Drop down menu with edit box The value can be chosen from the drop down box or a new one can be edited in the text box Records the multiplicity of this association end with respect to the other end i e how many instances of this end may be associated with an instance of the other end The multiplicity is shown on the diagram at that end of the association Modifiers There are 3 modifiers navigable ordered and static All 3 are checkboxes navigable Indicates that this end can be navigated to from the other end n Note The UML 1 4 standard provides a number of options for how navigation is dis 255 Class Diagram Artifact Reference played on an association end ArgoUML uses option 3 which means that arrow heads are shown at the end of an association when navigation is enabled at only one end to indicate the dire
457. type of artifact i e the UML metaclass not the actual name of this particular artifact In this example the property tab is for a class To the right of this is a toolbar of icons relevant to this property tab The first one is always navigation Go up The last is always Delete to delete the selected artifact from the model The ones in between depend on the artifact The remainder of the tab comprises fields laid out in two or three columns Each field has a label to its left The fields may be text boxes text areas drop down selectors radio boxes and check boxes In most but not all cases the values can be changed In the case of text boxes this is sometimes by just typing the required value However for many text boxes and text areas data entry is via a context sensitive pop up menu using button 2 click which offers options to add a new entry delete an entry or move entries up and down in text areas with multiple entries The first field is almost always a text field Name where the name of the specific artifact can be entered 154 The Details Pane The remaining fields vary depending on the artifact selected The detailed property sheets for all ArgoUML artifacts are discussed in separate chapters for each of the diagram types use case diagram Chapter 17 Use Case Diagram Artifact Reference class diagram Chapter 18 Class Diagram Artifact Reference sequence diagram Chapter 19 Sequence Diagram Arti fact Refer
458. u currently Hide All Edges Only appears on a class Hides all associations This is the same function as Remove from Diagram on all the associations of this class Hide Stereotype Only appears when the Stereotype of a package is displayed Hides the ste reotype Show Stereotype Only appears when the Stereotype of a package is hidden Displays the ste reotype Hide Visibility Only appears when the visibility of a package is displayed Hides the visibil ity Show Visibility Only appears when the visibility of a package is hidden Displays the visibil ity 12 9 5 Modifiers This sub menu only appears with class interface package and use case artifacts It is used to set or clear the values of the various modifiers available e Abstract Set for an abstract artifact e Leaf Set for a final artifact i e one with no subartifacts Root Set for a root artifact i e one with no superartifacts e Active Set for a artifact with dynamic behavior gt Note This really ought to be set automatically for artifacts with state machines or activity diagrams 12 9 6 Multiplicity This sub menu only appears with association artifacts when clicking at one end of the association It is used to control the multiplicity at the end of the association nearest the mouse click point There are only four entries a sub set of the range of multiplicities that are available through the property sheet of a as
459. ualifier e Warning Qualifiers are only partly supported in ArgoUML V0 18 Hence activating this button creates a qualifier in the model which is not shown on the diagram Also the proper ties panel for a qualifier equals that of a regular attribute gs w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected association end nav igating immediately to the properties tab for that stereotype Tif Delete This deletes the selected association end from the model s Note Ce This button is downlighted for binary associations since an association needs at least two ends Only for N ary associations this button is accessable and deletes just one end from the association 254 Class Diagram Artifact Reference 18 12 3 Property Fields For Association End Name Text box The name of the association end which provides a role name for this end of the associ ation This role name can be used for navigation and in an implementation context provides a name by which the source end of an association can reference the target end Note ArgoUML does not enforce any naming convention for association ends Stereotype Drop down selector Association end is provided by default with the UML standard stereotypes for AssociationEnd association global local parameter self Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype proper
460. uce Attributes on a Class Suggestion that the class has too many attributes for a good design and is at risk of becoming a design bottleneck The Wizard of this critic allows setting of the treshold i e the maximum number of attributes allowed before this critic fires d Caution This number is not stored persistently and there is no way to reduce it after it has been set higher except by creating more attributes until the critic fires again Restarting ArgoUML resets this number to its default 7 15 6 Planned Extensions Critics concerning interfaces and subclasses cm Note It is not clear why this category has the name Planned Extensions The current version of ArgoUML has three critics in this category 15 6 1 Operations in Interfaces must be public Suggestion that there is no point in having non public operations in Interfaces since they must be visible to be realized by a class 15 6 2 Interfaces may only have operations Suggestion that an interfaces has attributes defined The UML standard defines interfaces to have opera tions 177 The Critics d Caution ArgoUML does not allow you to add attributes to interfaces so this should never occur in the ArgoUML model It might trigger if a project has been loaded with XMI created by an other tool 15 6 3 Remove Reference to Specific Subclass Suggestion that in a good design a class should not reference its subclasses directly through attribu
461. uction Button 1 motion Button motion moving the mouse with the button down in the diagram not on any artifact allows to draw a rectangle around artifacts which will be selected when the button is released Menu functions and shortcuts Many menu operations change selection as side effect e g creating a new diagram Many keyboard shortcuts for menu operations change the selection e g Ctrl A which stands for the Select A11 function 8 2 2 2 Activation Here button 1 is used to activate the user interface component e g a button The object is usually high lighted when the mouse button is pressed and then activated when the mouse button is released Activat ing an user interface object means that its function is executed 8 2 2 3 Navigation Here button 1 is used to move the focus from one user interface component or diagram artifact to anoth er It is better known under the term keyboard focus This because keyboard commands usually work on the artifact that has the focus The focus is indicated by a hardly visible box around the artifact or for a text entry box by a flashing cursor 8 2 2 4 General Behavior When Editing Text Here button 1 is used to select the point within the text at which operations text entry and deletion will take place 8 2 3 Button 1 Double Click The behavior of button 1 double click varies betweens panes and is discussed in their chapters 8 2 3 1 General Behavior When Editing T
462. ude relationship but reflects the way that designer s tend to think The fact that the extend icon s arrow points upward the opposite of the include icon should help remind you of this To set a condition for the extend relationship select the extend relationship in the editing pane button 1 click and then bring up its property tab in the details pane button 1 click on the tab The text of the condition may be typed in the Condition field Long conditions may be split over several lines if de sired The condition is displayed under the extend label on the diagram It is possible to name extend relationships using the property tab but this is rarely done and will not be displayed on the use case diagram 47 Requirements Capture 4 4 4 3 Generalization 4 4 5 4 4 6 The procedure for adding generalizations is the same as for adding extend relationships but using the generalization icon from the editing pane toolbar T Since generalization is a directed relationship the order of selection matters The specialized use case should be selected first button 1 down and the generalized second button 1 release It is also possible to add generalizations using small handles that appear to the top and bottom of a use case when it is selected Dragging the handle at the top to another use case will create a generalization The original use case is the specializing end and the use case to which the handle was dra
463. uilt in to modern browsers but you can also get a plugin for older browsers from adobe com http www adobe com 3 4 3 2 6 Saving Diagrams as SVG 1 Select svg as the file type 2 Type the name of the file as you like with the svg tag at the end Example myumldia gram svg Et viola SVG Give it a try and zoom around a little They are not pretty though so if you know any thing about rendering beautiful SVG let us know Most modern browsers support SVG If yours doesn t try Firefox http www mozilla com firefox or get a plugin for your current browser from adobe com http www adobe com Note You will not have scroll bars for your SVG unless it is embedded in HTML Good luck and let us know what you find CEP 3 4 3 3 XMI ArgoUML supports XMI 1 0 1 1 and 1 2 files which contain UML 1 3 and UML 1 4 models For best compatibility with ArgoUML export your models using UML 1 4 and XMI 1 1 or 1 2 Be sure to turn off any proprietary extensions such as Poseidon s diagram data With UML versions earlier than UML 2 0 it isn t possible to save diagram information so no diagrams will be transferred 27 UML Based OOA amp D There is also a tool that converts XMI to HTML For more information see ht tp www objectsbydesign com projects xmi to html 2 html http www objectsbydesign com projects xmi to html 2 html 3 4 3 3 1 Using XMI from Rational Rose 3 4 3 3 2 Using Models Created by Poseidon
464. ure New Action a This creates a new Action see Section 20 3 Action for the selected object navigating immedi ately to the properties tab for that action gy N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected message navigating immediately to the properties tab for that stereotype 312 Collaboration Diagram Artifact Reference Tif Delete This deletes the message from the model ra Warning This is a deletion from the model not just the diagram To delete an message from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 21 5 3 Property Fields For Message Name Text box The name of a message is usually its sequence number either an integer or a decimal allowing alternative message hierarchies to be clearly described ArgoUML will supply an integer sequence number by default Stereotype Drop down selector Message has no stereotypes by default in the UML standard Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Interaction Text box Records the Interaction of which the message is a part Button 1 double click on the entry will navigate to the interaction Sender Text box Identifies the classifier role which sent this message Button 1 double click navigates to the sender classifier role
465. uring 346 Responsibility 346 Reverse Engineering 72 Robbins Jason 2 Round Trip Engineering 72 S Save Project 84 Scenario 41 346 Select All 94 Sequence Diagram 346 Setting Multiplicity to an association in a Use Case Diagram 47 Setting Navigation to an association in a Use Case Diagram 46 SGML 346 Shortcut key Alt F4 93 Ctrl A 94 Ctrl Delete 95 Ctrl N 83 Ctrl O 83 Ctrl P 89 366 Index Ctrl S 84 Delete 95 F7 112 Signal 246 Signal Contexts 248 Signal Details Tabs 246 Signal Name 248 Signal Property Fields 248 Signal Property Toolbar 247 Signal Stereotype 248 Signal Tagged Values 247 Simula 67 346 Specializations of Actor 209 of Package 230 of Use Case 40 212 Specification of Use Case 34 40 Stakeholders in the Vision document 35 Standard Graphical Markup Language 346 State 346 State Diagram 346 Statechart Diagram 346 Statechart Diagram Hierarchical 344 Stereotype 201 346 in Use Case Diagrams 48 of Actor 208 of Association 252 of Association End 255 of Class 233 of Datatype 195 of Dependency 260 of Extend Relationship 221 of Extension Point 214 of Generalization 217 of Include Relationship 224 of Model 192 of Operation 241 of Package 229 of Parameter 245 of Signal 248 of Use Case 212 Stereotype Base Class 202 Stereotype Details Tabs 201 Stereotype Modifiers 203 Stereotype Name 202 Stereotype Namespace
466. used in a wide variety of ways In this section we look at the common modes of use ArgoUML assumes a two button mouse We will refer to the buttons as button 1 and button 2 But ton 1 is the leftmost button on a right handed mouse and sometimes referred to as the select button Button 2 is sometimes referred to as the adjust button 1 Button I click This action is generally used to select an item for subsequent operations If the item is an artifact in the explorer or the editing pane it will be highlighted In the case of the Edit Pane Toolbar that artifact is selected as the next to be added to the diagram but only once see double clicking for adding multiple artifacts The adding to the diagram is achieved by moving the mouse to the editing area and clicking again 2 Button I double click This action is identical to a single click except when it is used with the edit pane toolbar Under these circumstances the selected artifact will be added multiple times to the drawing area once for each further button click until the tool is again selected or another tool chosen 3 Button 2 click When used over text items in the the explorer or details panes or graphical artifacts in the editing pane this will display a context dependent drop down menu If the item has not yet been selected it will also be selected 4 Button 1 motion Where button 1 click has been used to pull down a menu from the menu bar but ton
467. using Java Web Start This is the easiest option 2 Download the binary executable code This is the right option if you intend using ArgoUML regu larly and is not that difficult 3 Download the source code using CVS and build your own version Choose this option if you want to look at the internal workings of ArgoUML or want to join in as a developer This option does require the whole JDK see Section 3 4 1 1 System Requirements All three options are freely available through the project web site argouml tigris org http argouml tigris org 3 4 1 3 ArgoUML Using Java Web Start There are two steps to this 1 Install Java Web Start on your machine This is available from java sun com products javawebstart http java sun com products javawebstart or via the Java Web Start link on the ArgoUML home page http argouml tigris org 2 Click on the Launch latest stable release link on the ArgoUML home page http argouml tigris org Java Web Start will download ArgoUML cache it and start it the first time then on subsequent starts check if ArgoUML is updated and only download any updated parts and then start it The ArgoUML home page http argouml tigris org also provides details on starting ArgoUML from the Java Web Start console 3 4 1 4 Downloading the Binary Executable If you choose to download the binary executable you will have a choice of downloading the latest stable version of the code which will be mo
468. ut applying any settings changed since the last Apply or since the dialog started if Apply has not been used e Apply Selecting this button button 1 click applies the chosen settings and remains in the dialog Closing the dialog with the close button in the top corner in the border of the window causes the same effect as Cancel These settings are saved persistently for use by subsequent ArgoUML sessions 10 4 5 1 Preferences Tab Selecting the Preferences tab button click on the tab gives the following options as check boxes Show Splash Panel set by default If enabled ArgoUML will show a small panel with a pic ture while starting up p i Y Tip The splash panel can be seen by using the Help menu see Section 10 11 2 About 96 The Menu bar ArgoUML Preload Common Classes set by default If enabled ArgoUML creates class objects of a number of classes internally during start up so that instantiation is quicker when they are needed Reload last saved project on startup clear by default Check this item if you al ways work on the same project and wish to load it automatically when you start up ArgoUML Strip non standard diagrams from XMI file during import clear by de fault Checking this item will tell ArgoUML to ignore the Diagram elements when importing XMI files You only need to use this setting if ArgoUML gives an error while importing your XMI file saying that it encounte
469. utton 1 to select the association and select its property tab in the details pane This shows a field named Association Ends with entries for each end labeled by the actor or use case name and its multiplicity Select the end that should be at the tail of the arrow with button 1 click This brings up the property tab for the association end Use button 1 click to uncheck the Navig ability box Note LE f This may seem counter intuitive but in fact associations by default are navigable in both directions when no arrows are shown This process is turning off navigation at one end rather than turning it on at the other You will see it is possible to give an association end a name in its property tab This name will appear at that end of the association and can be used to indicate the role being played by an actor or use case in an association For example a time management system for a business may have use cases for completing time sheets and for signing off time sheets An employee actor may be involved in both one as an employee but the other in a role as manager 46 Requirements Capture 4 4 3 2 Setting Multiplicity There are two ways of setting multiplicity at the end of an association 1 Button 2 click over the end of an association will cause a context sensitive pop up menu to appear with a sub menu labeled Multiplicity This allows you to select from 1 the default 0 1 0 and1 2 Bring up the pr
470. vanced Statechart Diagrams To be written To be written 6 9 5 1 Transitions To be written To be written 6 9 5 1 1 Triggers To be written To be written 6 9 5 1 2 Guards To be written To be written 6 9 5 1 3 Effectss To be written To be written 6 9 5 2 Pseudo States To be written 66 Design To be written 6 9 5 2 1 Junction and Choice To be written To be written 6 9 5 2 2 Fork and Join To be written To be written 6 9 5 3 Hierarchical State Machines To be written To be written 6 9 5 4 History To be written Shallow v Deep To be written 6 10 Activity Diagrams To be written To be written 6 10 1 The Activity Diagram To be written More on this To be written 6 10 1 1 Action States To be written To be written 6 11 Creating Activity Diagrams in ArgoUML To be written 6 11 1 Activity Diagrams To be written To be written 6 11 1 1 Creating an Activity Diagram Select a use case or class then you can create an activity diagram 6 11 2 Action States To be written To be written 6 12 Deployment Diagrams To be written To be written 6 12 1 The Deployment Diagram To be written To be written 6 13 Creating Deployment Diagrams in ArgoUML To be written 6 13 1 Nodes To be written To be written 67 Design 6 13 1 1 Node Instances To be written To
471. various material mostly documents that live alongside the design diagram A 2 Requirements Documents To be written To be written A 2 1 Vision Document To be written To be written A 2 2 Use Case Specifications To be written To be written A 2 2 1 UC Specification 1 To be written To be written A 2 3 Supplementary Requirements Specification To be written To be written 349 Appendix B UML resources B 1 The UML specs To be written To be written B 2 UML related papers To be written To be written B 2 1 UML action specifications To be written To be written B 3 UML related websites To be written To be written 350 Appendix C UML Conforming CASE Tools C 1 Other Open Source Projects To be writ ten To be written C 2 Commercial Tools To be written To be written Appendix D The C Module The ArgoUML C Module C Mod provides C code generation functionalities and C nota tion within ArgoUML It works the same way as the other languages modules D 1 Modeling for C D 1 1 The C programming language has constructs that aren t contained by default in UML Examples are pointers global functions and variables references and operator overloading To enable us to apply these constructs in our models and be capable of taking advantage of it for code generation and C notation in UML diagrams the C
472. vel Artifact Reference 16 6 1 Diagram Details Tabs The details tabs that are active for diagrams are as follows ToDoItem Standard tab Properties See Section 16 6 3 Property Fields For Diagram below 16 6 2 Diagram Property Toolbar By GO up Navigate up through the package structure of the model Tif Delete This deletes the diagram from the model As a consequence in case of a statechart diagram or an activity diagram all contained elements are deleted too 16 6 3 Property Fields For Diagram Name The name of the diagram There are no conventions for naming diagrams By default ArgoUML uses the space separated diagram name and a sequence number thus Use Case Diagram 1 Tip This name is used to generate a filename when activating the Save Graphics menu item 205 Chapter 17 Use Case Diagram Artifact Reference 17 1 Introduction This chapter describes each artifact that can be created within a use case diagram Note that some sub artifacts of artifacts on the diagram may not actually themselves appear on the diagram There is a close relationship between this material and the properties tab of the details pane see Sec tion 13 3 Properties Tab That section covers properties in general in this chapter they are linked to specific artifacts Figure 17 1 Possible artifacts on a use case diagram shows a use case diagram with all possible arti facts displayed F
473. vel dia grams but this is not supported by ArgoUML For more on association end roles see Section 21 4 Association End Role The names are listed unless the association end role has no name then it is shown as anon As sociationEndRole Button 1 double click on an association end role will navigate to that end Messages Text area Lists the messages that are associated with this association role Button 1 double click navigates to the selected entry 21 4 Association End Role An association end role is a specialization of an association end used to describe an association end s behavior in a particular context In the UML metamodel AssociationEndRole is a sub class of AssociationEnd Two or more association end roles are associated with each association role see Section 21 3 Association Role although for ArgoUML the number of ends can only be two The association end role has no direct access on any diagram although its stereotype name and multi plicity is shown at the relevant end of the parent association role see Figure 21 1 Possible artifacts on a collaboration diagram and some of its properties can be directly adjusted with button 2 click Where shared or composite aggregation is selected for one association end role the opposite end is shown as a solid diamond composite aggregation or hollow diamond shared aggregation Note cg ArgoUML does not currently V0 18 support showing qua
474. voked 15 7 13 Clean Up Diagram This critic is discussed under an earlier design issues category see Section 15 3 3 Clean Up Diagram 15 7 14 Make Edge More Visible 179 The Critics Suggestion that an edge artifact such as an association or abstraction is so short it may be missed Move the connected artifacts apart to make the edge more visible 15 7 15 Composite Association End with Multiplicity gt 1 An instance may not belong by composition to more than one composite instance You must change the multiplicity at the composite end of the association to either 0 1 or 1 1 1 for your model to make sense Remember that composition is the stronger aggregation kind and aggregation is the weaker The prob lem can be compared to a model where a finger can be an integral part of several hands at the same time This is the second well formedness rule on AssociationEnd in UML 1 4 Design Patterns Critics concerning design pattern usage in ArgoUML 15 8 These relate to the use of patterns as described by the so called Gang of Four ArgoUML also uses this category for critics associated with deployment and sequence diagrams The current version of ArgoUML has the following critics in this category 15 8 1 Consider using Singleton Pattern for lt class gt The class has no non static attributes nor any associations that are navigable away from instances of this class This means that every instance of thi
475. w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected attribute navigating immediately to the properties tab for that stereotype Tif Delete This deletes the attribute from the model pn Warning This is a deletion from the model not just the diagram If desired the whole attribute compartment can be hidden on the diagram using the style tab see Section 18 6 2 Attribute Property Toolbar or the button 2 pop up menu for the class on the dia gram 18 6 3 Property Fields For Attribute Name Text box The name of the attribute The name of a attribute has a leading lower case letter with 236 Class Diagram Artifact Reference words separated by bumpy caps GP Note The ArgoUML critics will complain about attribute names that do not have an initial lower case letter Stereotype Drop down selector There are no UML standard stereotypes for Attribute Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype Owner Text box Records the class which contains this attribute Button 1 double click on the entry will navigate to the class Multiplicity Editable drop down selector The default value 1 is that there is one instance of this attribute for each instance of the class i e it is a scalar The drop down provides a number of commonly used specifications for no
476. which they can drive the development and evolution of CASE tool technologies Introduction UML is the most prevalent OO modeling language and Java is one of the most productive OO develop ment platforms Jason Robbins and the rest of his research team at the University of California Irvine leveraged these benefits in creating ArgoUML The result is a solid development tool and environment for OO systems design Further it provides a test bed for the evolution of object oriented CASE tools development and research A first release of ArgoUML was available in 1998 and more than 100 000 downloads by mid 2001 show the impact that this project has made being popular in educational and commercial fields 1 1 3 Finding Out More About the ArgoUML Project 1 1 3 1 How ArgoUML is Developed Jason Elliot Robbins founded the Argo Project and provided early project leadership While Jason re mains active in the project he has handed off project leadership The project continues to move forward strongly There are more than 300 members on the developer mailing list see ht tp argouml tigris org servlets ProjectMailingListList http argouml tigris org servlets ProjectMailingListList with a couple of dozen of those forming the core development group The developer mailing list is the place where all the discussion on the latest tasks takes place and de velopers discuss the directions the project should take Although controversial at times
477. wn as brainstorming is held During this session you identify the initial set of classes in the problem domain by using the problem statement or requirements document or whatever you know about the de sired result for a starting point The nouns that are found in whatever you are starting from are a good key to an initial set of classes in the system In a brainstorming session there should be little or no dis cussion of the ideas Record them and filter the results after the brainstorming At this stage the distinc tion between class and object is blurred Once a reasonable set of classes has been defined by the group responsibilities can be added Add re sponsibilities that are obvious from the requirements or the name of the class You don t need to find them all or any for that matter The scenarios will make them more obvious The advantage of finding some in the beginning is that it helps provide a starting place Select the initial scenarios from the requirements document by examining it s verbs in much the same way that we scanned its nouns earlier Then as many walk through sessions as necessary to complete the analysis phase are performed When is enough of the analysis complete that design can begin When all the different responsibilities are in place and the system has become stable After all the normal behavior has been covered excep tional behavior needs to be simulated When you notice that the responsibilities are all in place t
478. work Requirements In an ideal world the vision document use case diagrams use case specifications and supplementary requirements specification would form the requirements for a project For most market led developments where ownership of requirements is within the same business as the team who will do the development this is now usually the case The marketing department can learn use case based requirements capture and analysis to link to their customer facing activities However for external contract developments customers may insist on a traditional list of features as the basis of the contract Where this is the case this section of the use case specification should link to the contract features that are covered by the use case This is often done through a third party tool that can link documents providing automated checking of coverage in which case this section is not needed or may be generated automatically 41 Requirements Capture The final size of the use case specification will depend on the complexity of the use case As a rule of thumb most use cases take around 10 15 pages to specify the bulk of which is alternate flows If you are much larger than this consider breaking the use case down If you are much smaller consider wheth er the use case is addressing too small a chunk of behavior 4 3 3 1 Specifying the Basic Flow All flows in a use case specification are linear that is there is no conditio
479. work or derivative of the work in any standard paper book form is prohibited unless prior permission is obtained from the copyright holder to the li cense reference or copy 358 Open Publication License F 7 Open Publication Policy Appendix This is not considered part of the license Open Publication works are available in source format via the Open Publication home page at ht tp works opencontent org http works opencontent org Open Publication authors who want to include their own license on Open Publication works may do so as long as their terms are not more restrictive than the Open Publication license If you have questions about the Open Publication License please contact David Wiley mailto dw2 opencontent org and or the Open Publication Authors List at opal opencontent org mailto opal opencontent org via email To subscribe to the Open Publication Authors List Send E mail to opal request opencontent org with the word subscribe in the body To post to the Open Publication Authors List Send E mail to opal opencontent org or simply reply to a previous post To unsubscribe from the Open Publication Authors List Send E mail to opal request opencontent org with the word unsubscribe in the body 359 Appendix G The CRC Card Methodology A CRC card is ostensibly an index card that is used to represent classes their responsibilities and the in teractions between
480. wormnee verona S UU eU Sepe do 84 10 3 4 rh SAVE Project ASer oseese iire oa eiee 85 10 3 5 Revert to Saved ie ette rete ste EE EE EAE 85 10 3 6 Import XML 535 eire ee tote oorr peret epe E oe ee br v ene e e veda 85 10 3 7 Export XM D cs esacccudicensd wh eres sten etat baie aea e eco poire Sev t Ore DERE ead 86 10 3 8 Import SOUfC S ce torte bebo a t ru SRM Re btu eese Eb E 87 10 3 9 Page Setupia siacecvostecetesinacaevoil cc trabe treo exe vei tee ere bre Enea 0 3 9 Bg ge Setup 89 10 3 10 lui T 89 10 3 11 Export Graphics idest rere rr ree ane eS e vetns 89 10 3 12 Export All Graphics ssese HMM 90 10 35 15 NOAHO X osocre cose tsesesseeuresa ossa tex mede ps bxo eyes eds dupdsor Ur pdepvduP otorts 90 10 3 14 i Properties qr ERR 91 10 3 15 Save Configuration si cccesscensekoeecsebiswes jeasebenssanevect aber ooebiowen 93 10 3 16 Most Recent Used Files eere nennen nenne nnn nen 93 10 3 T7 EXE esee eser reus tette ores to Pales uy t eerta s reed ipe s vyecwns soe tasnesat eevee creeds 93 10 4 The Edit Menu ertet educit rep b oor eoo ree eat cece ee 94 10 4 1 Select inier derer ettet sorore ee eov cui ee torr i obs Coo ost recor ssa ovv E 94 10 4 2 um Remove From Diagram eee 95 10 4 3 Tif Delete From Model tete teure etr rere pee grege autre ese ERR Eee 95 10 4 4 E Configure Perspectives essssesssesee eee 95 10 4 5
481. xpected In particular there are some serious problems with layout of the collaboration roles and messages Figure 21 1 Possible artifacts on a collaboration diagram shows a collaboration diagram with all pos sible artifacts displayed Figure 21 1 Possible artifacts on a collaboration diagram 300 Collaboration Diagram Artifact Reference l invoke 3 return De pe nde dint lass z create 4 4 zig Start 4 5 sig End B destroy i Third lass 21 1 1 Limitations Concerning Collaboration Diagrams in ArgoUML The collaboration diagram is still rather under developed in ArgoUML In particular there is no way to show instance collaborations based on objects and links rather than specification collaborations The biggest difficulties are with the messages There are problems with the sequencing of the messages and their display on the diagram The actions behind them are purely textual in implementation and there is no way to link them back to their associated operations or signals 21 2 Classifier Role A classifier role is a specialization of a classifier used to show its behavior in a particular context In the UML metamodel Classifier Role is a sub class of Classifier Within a collaboration dia gram classifier roles may be used in one of two ways e To represent the classifier in a particular behavioral context the specification level or to specify a particular instance
482. y Action Text box Shows the name of the action to be invoked on entry to this action state According the UML standard an Action State is obliged to have an Entry Action Button 1 double click navigates to the shown entry button 2 gives a pop up menu with two entries New Add a new Entry action of a certain kind This menu has the following 7 submenus to se lect the kind of action Call Action Create Action Destroy Action Return Action Send Action Terminate Action Uninterpreted Action e Delete From Model Delete the Entry Action Deferrabl vents Text box The deferrable events of the action state Incoming Text area Lists the transitions that enter this action state 318 Activity Diagram Artifact Reference Button 1 double click navigates to the selected entry Outgoing Text area Lists the transitions that leave this action state Button 1 double click navigates to the selected entry 22 3 Action This artifact is described in the context of statechart diagrams see Section 20 3 Action 22 4 Transition This artifact is described in the context of statechart diagrams see Section 20 8 Transition qd Caution Remember that action states do not have explicit triggers The transition is implicitly triggered as soon as the entry event of the action state is complete An explicit trigger should not therefore be set The current release of ArgoUML will not check that this constraint is
483. y Toolbar and Section 18 6 3 Property Fields For Attrib ute below Documentation Standard tab See Section 13 4 Documentation Tab Source Standard tab This contains a declaration for the attribute Constraints Standard tab There are no standard constraints defined for Attribute within the UML metamod el Tagged Values Standard tab In the UML metamodel Attribute has the following standard tagged values defined transient volatile This is an ArgoUML extension to the UML 1 4 standard to indicate that this attrib ute is realized in some volatile form for example it will be a memory mapped control register S Note 235 Class Diagram Artifact Reference The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for a Attribute 18 6 2 Attribute Property Toolbar By GO up Navigate up through the package structure New attribute deb This creates a new attribute within the owning class of the current attribute navigating immediately to the properties tab for that attribute oh Tip This is a very convenient way to add a number of attributes one after the other to a class a New Datatype This creates a new Datatype see Section 16 3 Datatype for the selected attribute navigating im mediately to the properties tab for that datatype Ne
484. y code so having this tab active is probably a mistake Tagged Values Standard tab a Note The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML Checklist Standard tab for an Instance 23 3 2 Node Instance Property Toolbar By GO up Navigate up through the package structure gg N w Stereotyp This creates a new Stereotype see Section 16 5 Stereotype for the selected node instance navig ating immediately to the properties tab for that stereotype Tif Delete This deletes the node instance from the model Warning This is a deletion from the model not just the diagram To delete an node instance from the diagram but keep it within the model use the main menu Remove From Diagram or press the Delete key 23 3 3 Property Fields For Node Instance Name Text box The name of the node instance By convention node instance names start with a lower case letter and use bumpy caps to divide words within the name cen Note ArgoUML does not enforce this naming convention Stereotype Drop down selector Node instance has no stereotypes by default in the UML standard 326 23 4 23 4 1 Deployment Diagram Artifact Reference Navigate Stereotype icon If a stereotype has been selected this will navigate to the stereotype property panel see Section 16 5 Stereotype
485. yout Tools 21 2 tret ack it ee ctetuer cL E 131 12 3 2 Annotation Tools esee eene nennen nnne 131 123 3 Drawing Toolse eter egre rr eret Ettore eere E OP P e Sex ure er 132 12 3 4 Use Case Diagram Specific Tools seeeseee 133 12 3 5 Class Diagram Specific Tools sse 134 12 3 6 Sequence Diagram Specific Tools sseessess 136 12 3 7 Collaboration Diagram Specific Tools eeseesssesse 136 12 3 8 Statechart Diagram Specific Tools sess 137 12 3 9 Activity Diagram Specific Tools 2 0 0 0 eee cece ce eeeeeeee teen es 138 12 3 10 Deployment Diagram Specific Tools cece cece eee eee ee ee 139 124 The Broom rsen RE T O ENS 140 12 5 Selection Action BUNS ie e tet ore etenim E EO EEA 142 12 6 Clarifiers 4 1 eed res E eh ea E EE EE E N 142 12 7 The Drawing Grid eeaeee tas e a EE Ebr oc oe o 143 12 8 The Diagram TaD ooo Renee eee EES E ted pe ree OE PERNS 143 12 9 Pop Up MENUS sanera t eet ee e een Int dete o NE E E 143 12 9 T Critiques inue RESO 143 12 92 Orderin o seee ee err eli EE STRESS 143 12 9 3 Add i dn e EEEE aa EESE EEA TE px 144 129 4 Show i tis t Ett ee P hete deett ege 144 12 9 5 Modlfiers iere ette gerere ree nere eerie 145 12 9 6 Multiplicity s inerte tete Pe E EPERE ES i iasa 145 12 97 Agere paton cie eea dense urea emt RE E NEENA 146 12 9 8 Navigabili
Download Pdf Manuals
Related Search
Related Contents
What is Messaging Manager? the Manual - Unicon Research Corporation Samsung Galaxy Tab4 10.1 manual de utilizador(LL) Téléchargement FDR - Ramsar Sites Information Service 部分床義歯装着時の鉤歯の維持力に関する研究, - Streamlining MICE Copyright © All rights reserved.
Failed to retrieve file