Visual Paradigm for the Unified Modeling Language VP-UML 2.0 Tutorial Table of contents Table Of contents Table Of contents .......................................................................................................................................... 1 Table of Figures............................................................................................................................................. 6 Table of tables ............................................................................................................................................... 6 Case Study..................................................................................................................................................... 6 Chapter 2 Textual Analysis............................................................................................................................ 6 What is Textual Analysis? ..................................................................................................................... 6 Creating a Document for Textual Analysis............................................................................................ 6 The Textual Analysis Toolbar................................................................................................................ 6 Importing a Text File as the Problem Statement............................................................................ 6 Searching Text in the Problem Statement...................................................................................... 6 Creating a New Candidate Item .................................................................................................... 6 Showing/Hiding a Type of Candidates.......................................................................................... 6 Rearranging the Locations of Candidate Classes .......................................................................... 6 Setting the Textual Analysis Window Layout ............................................................................... 6 Editing the Candidates in Candidate Table.................................................................................... 6 Creating Models for Existing Candidates...................................................................................... 6 Adding Generated Models on Diagrams ....................................................................................... 6 Exercise................................................................................................................................................. 6 Chapter 3 Use Case Diagram ........................................................................................................................ 6 What is a Use Case Diagram? ............................................................................................................... 6 Creating a Use Case Diagram ............................................................................................................... 6 The Use Case Diagram Palette.............................................................................................................. 6 Drawing a Use Case Diagram ............................................................................................................... 6 Creating a Use Case ...................................................................................................................... 6 Creating an Actor .......................................................................................................................... 6 Creating a System.......................................................................................................................... 6 Creating a Collaboration ............................................................................................................... 6 Creating an Association Link ........................................................................................................ 6 Defining the Multiplicity of a Role of an Association Link .......................................................... 6 Creating an <<extend>> Relationship Link .................................................................................. 6 Defining Extension Point .............................................................................................................. 6 Creating an <<include>> Relationship Link ................................................................................. 6 Creating a Generalization Relationship Link ................................................................................ 6 Editing the Use Case Specification ............................................................................................... 6 Editing the Use Case Description.................................................................................................. 6 Performing Textual Analysis with a Use Case .............................................................................. 6 Editing the Actor Specification ..................................................................................................... 6 Scheduling the use cases ............................................................................................................... 6 Generating Sequence Diagram with a Use Case ........................................................................... 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 1 Table of contents Chapter 4 Sequence Diagram........................................................................................................................ 6 What is a Sequence Diagram?............................................................................................................... 6 Creating a Sequence Diagram ............................................................................................................... 6 The Sequence Diagram Palette.............................................................................................................. 6 Drawing a Sequence Diagram............................................................................................................... 6 Creating an Actor .......................................................................................................................... 6 Creating an Object......................................................................................................................... 6 Creating a Message ....................................................................................................................... 6 Creating a Constraint..................................................................................................................... 6 Creating a Duration Message ........................................................................................................ 6 Creating a Self Message ................................................................................................................ 6 Creating a Create Message ............................................................................................................ 6 Creating a Concurrent ................................................................................................................... 6 Creating a Recursive ..................................................................................................................... 6 Creating a Subsystem .................................................................................................................. 6 Editing an Actor Specification ...................................................................................................... 6 Editing an Object Specification..................................................................................................... 6 Editing a Message Type................................................................................................................. 6 Setting Base Classifier .................................................................................................................. 6 Setting Object Active .................................................................................................................... 6 Setting Show Destruction.............................................................................................................. 6 Generating a Collaboration Diagram............................................................................................. 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 Chapter 5 Activity Diagram .......................................................................................................................... 6 What is an Activity Diagram? ............................................................................................................... 6 Creating an Activity Diagram ............................................................................................................... 6 The Activity Diagram Palette ................................................................................................................ 6 Drawing an Activity Diagram ............................................................................................................... 6 Creating an Action State................................................................................................................ 6 Creating a Sub Activity ................................................................................................................. 6 Create an Initial State .................................................................................................................... 6 Create a Final State........................................................................................................................ 6 Creating a Horizontal Synchronization ......................................................................................... 6 Creating a Vertical Synchronization .............................................................................................. 6 Creating a Decision Point.............................................................................................................. 6 Creating a Signal Receipt .............................................................................................................. 6 Creating a Signal Sending ............................................................................................................. 6 Creating an Object......................................................................................................................... 6 Creating a Transition ..................................................................................................................... 6 Creating an Object Flow................................................................................................................ 6 Creating a Swimlane ..................................................................................................................... 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 2 Table of contents Chapter 6 Collaboration Diagram ................................................................................................................. 6 What is Collaboration Diagram? ........................................................................................................... 6 Creating a Collaboration Diagram ........................................................................................................ 6 The Collaboration Diagram Palette ....................................................................................................... 6 Drawing a Collaboration Diagram ........................................................................................................ 6 Creating an Object......................................................................................................................... 6 Creating an Actor .......................................................................................................................... 6 Creating a Package ........................................................................................................................ 6 Creating a Subsystem .................................................................................................................... 6 Creating a Classifier Role.............................................................................................................. 6 Creating a Link.............................................................................................................................. 6 Creating an Association Role ........................................................................................................ 6 Creating a Message to ................................................................................................................... 6 Creating a Message from............................................................................................................... 6 Reorder Sequence Numbers of Messages ..................................................................................... 6 Creating a Swimlane ..................................................................................................................... 6 Creating a Generalization Relationship......................................................................................... 6 Editing an Object Specification..................................................................................................... 6 Editing an Actor Specification ...................................................................................................... 6 Generating a Sequence Diagram ................................................................................................... 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 Chapter 7 State Diagram ............................................................................................................................... 6 What is a State Diagram? ...................................................................................................................... 6 Creating a State Diagram ...................................................................................................................... 6 The State Diagram Palette..................................................................................................................... 6 Drawing a State Diagram ...................................................................................................................... 6 Creating an Initial State ................................................................................................................. 6 Creating a State ............................................................................................................................. 6 Creating a Concurrent State........................................................................................................... 6 Creating a Submachine State......................................................................................................... 6 Creating a Call State...................................................................................................................... 6 Creating an Action State................................................................................................................ 6 Creating a Junction Point .............................................................................................................. 6 Creating a State Dynamic Choice Point ........................................................................................ 6 Creating a History State ................................................................................................................ 6 Creating a Transition ..................................................................................................................... 6 Creating a Synch state ................................................................................................................... 6 Creating a Vertical Synchronization Bar ....................................................................................... 6 Creating a Horizontal Synchronization Bar................................................................................... 6 Editing a State Object Specification.............................................................................................. 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 Chapter 8 Class Diagram .............................................................................................................................. 6 3 Table of contents What is a Class Diagram? ..................................................................................................................... 6 Creating a Class Diagram...................................................................................................................... 6 The Class Diagram Palette .................................................................................................................... 6 Creating a Class............................................................................................................................. 6 Adding an Attribute....................................................................................................................... 6 Adding an Operation ..................................................................................................................... 6 Sorting Attributes and Operations ................................................................................................. 6 Visibility Setting............................................................................................................................ 6 Defining an Abstract Class ............................................................................................................ 6 Defining Active Class.................................................................................................................... 6 Defining the Stereotype of a Class ................................................................................................ 6 Creating a Package ........................................................................................................................ 6 Creating a Collaboration ............................................................................................................... 6 Defining a Constraint .................................................................................................................... 6 Creating an Association Link ........................................................................................................ 6 Creating an Aggregation Relationship Link .................................................................................. 6 Creating a Composition Relationship Link ................................................................................... 6 Defining a Association Role.......................................................................................................... 6 Creating a Generalization Relationship Link ................................................................................ 6 Creating a Realization Relationship Link...................................................................................... 6 Creating a Dependency Relationship Link.................................................................................... 6 Creating an Association Class ....................................................................................................... 6 Creating an N-ary Association between Classes ........................................................................... 6 Creating a Containment Relationship............................................................................................ 6 Creating a Class Diagram with Real Time Code Generation ........................................................ 6 Real Time Code Generation for a Class ........................................................................................ 6 Real Time Code Generation for a Class Attribute ......................................................................... 6 Real Time Code Generation for a Class Operation ....................................................................... 6 Real Time Code Generation for a Class with Package .................................................................. 6 Real Time Code Generation for Importing a Package................................................................... 6 Real Time Code Generation for Importing a Class ....................................................................... 6 Example......................................................................................................................................... 6 Exercise................................................................................................................................................. 6 Chapter 9 Component Diagram..................................................................................................................... 6 Creating a Component Diagram............................................................................................................ 6 The Component Diagram Palette .......................................................................................................... 6 Drawing a Component Diagram............................................................................................................ 6 Creating a Component................................................................................................................... 6 Creating a Component Instance .................................................................................................... 6 Creating an Interface ..................................................................................................................... 6 Chapter 10 Deployment Diagram ................................................................................................................. 6 What is Deployment Diagram? ............................................................................................................. 6 Create a Deployment Diagram .............................................................................................................. 6 The Deployment Diagram Palette ......................................................................................................... 6 4 Table of contents Draw Deployment Diagram .................................................................................................................. 6 Create Node................................................................................................................................... 6 Create Component......................................................................................................................... 6 Create Component......................................................................................................................... 6 Create Component Instance........................................................................................................... 6 Create Interface ............................................................................................................................. 6 Create Object................................................................................................................................. 6 Create Association Relationship.................................................................................................... 6 Creating a Dependency Relationship ............................................................................................ 6 Chapter 11 Report Generator ........................................................................................................................ 6 HTML Report........................................................................................................................................ 6 Generating HTML Report ............................................................................................................. 6 Browsing HTML Report Generated .............................................................................................. 6 PDF Report ........................................................................................................................................... 6 Generating PDF Report................................................................................................................. 6 Browsing PDF Report Generated.................................................................................................. 6 Chapter 12 Code Generation ......................................................................................................................... 6 Java Code Generation............................................................................................................................ 6 Syntax Checking for a Project....................................................................................................... 6 Checking Syntax for a Class ......................................................................................................... 6 Generating Code for a Project ....................................................................................................... 6 Generating Code for a Class.......................................................................................................... 6 Real-Time Code Generation.......................................................................................................... 6 Chapter 13 Code Reverse Engineering ......................................................................................................... 6 Java Code Reverse Engineering ............................................................................................................ 6 Real-Time Reverse Engineering for a Class.................................................................................. 6 Reverse Engineering from Java Files ............................................................................................ 6 Adding the reversed class models to class diagrams. .................................................................... 6 Updating Class Models from Java files......................................................................................... 6 Chapter 14 Print Preview Window................................................................................................................ 6 Print Preview Window .......................................................................................................................... 6 The Print Preview Toolbar .................................................................................................................... 6 Printing.................................................................................................................................................. 6 Printing Diagrams ......................................................................................................................... 6 Print Settings ................................................................................................................................. 6 Page Settings ................................................................................................................................. 6 Adjusting the Paper Margins ......................................................................................................... 6 Zooming ........................................................................................................................................ 6 Setting the Diagram Base Layout.................................................................................................. 6 Set Paper Place Style..................................................................................................................... 6 Fit to Ratio..................................................................................................................................... 6 Fit to Pages.................................................................................................................................... 6 Setting the Overlapping of a Diagram........................................................................................... 6 Showing the Image Clip Mark ...................................................................................................... 6 5 Table of contents Editing the Header/Footer of the Pages......................................................................................... 6 Multi Page Mode........................................................................................................................... 6 Exit Print Preview Window........................................................................................................... 6 6 Table of figures Table of Figures Figure 2.1 A problem statement having textual analysis performed ............................................................. 6 Figure 2.2 Create Textual analysis by Menu ................................................................................................. 6 Figure 2.3 Create Textual Analysis by Toolbar ............................................................................................. 6 Figure 2.4 Create textual analysis by project explorer .................................................................................. 6 Figure 2.5 A blank new textual analysis document is created. ...................................................................... 6 Figure 2.6 A problem statement .................................................................................................................... 6 Figure 3.1 A use case diagram....................................................................................................................... 6 Figure 3.2 Create new use case using main menu......................................................................................... 6 Figure 3.3 Create use case using toolbar....................................................................................................... 6 Figure 3.4 Create use case using Project Explorer ........................................................................................ 6 Figure 3.5 A blank new use case diagram is created. .................................................................................... 6 Figure 3.6 Maintain Rental Records Use Case.............................................................................................. 6 Figure 3.7 Main Use Cases ........................................................................................................................... 6 Figure 3.8 Create an actor by resource centric .............................................................................................. 6 Figure 3.9 Create another use case................................................................................................................ 6 Figure 3.10 Another Actor............................................................................................................................. 6 Figure 3.11 Generalization of actor............................................................................................................... 6 Figure 3.12 Create an extend use case .......................................................................................................... 6 Figure 3.13 Completed use case diagram...................................................................................................... 6 Figure 3.14 Use Case Scheduling dialog....................................................................................................... 6 Figure 3.15 Justification of Main Rental Recrods......................................................................................... 6 Figure 3.16 Textual analysis.......................................................................................................................... 6 Figure 3.17 Find out candidate use case........................................................................................................ 6 Figure 3.18 A use case diagram .................................................................................................................. 6 Figure 4.1 Sequence Diagram ....................................................................................................................... 6 Figure 4.2 Create sequence diagram using menu bar.................................................................................... 6 Figure 4.3 Create sequence diagram using toolbar ....................................................................................... 6 Figure 4.4 Create sequence diagram using Project Explorer......................................................................... 6 Figure 4.5 A blank new sequence diagram is created.................................................................................... 6 Figure 4.6 Select an actor.............................................................................................................................. 6 Figure 4.7 Sequence Diagram Exercise ........................................................................................................ 6 Figure 5.1 An activity diagram...................................................................................................................... 6 Figure 5.2 Create activity diagram by menu ................................................................................................. 6 Figure 5.3 Create activity diagram by toolbar............................................................................................... 6 Figure 5.4 Create activity diagram by project explorer................................................................................. 6 Figure 5.5 A blank new activity diagram is created. ..................................................................................... 6 Figure 5.6 Initial State................................................................................................................................... 6 Figure 5.7 Create the actor state.................................................................................................................... 6 Figure 5.8 Create the decision point.............................................................................................................. 6 Figure 5.9 Create another decision point....................................................................................................... 6 Figure 5.10 Create another action state ......................................................................................................... 6 7 Table of figures Figure 5.11 Create the final state................................................................................................................... 6 Figure 5.12 Completed Activity Diagram ..................................................................................................... 6 Figure 5.13 An activity diagram.................................................................................................................... 6 Figure 6.1 Collaboration Diagram ................................................................................................................ 6 Figure 6.2 A blank new collaboration diagram is created. ............................................................................ 6 Figure 6.3 Create a swimlane........................................................................................................................ 6 Figure 6.4 Give a name to swimlane............................................................................................................. 6 Figure 6.5 Create more swimlane ................................................................................................................. 6 Figure 6.6 Create an actor ............................................................................................................................. 6 Figure 6.7 Create another actor ..................................................................................................................... 6 Figure 6.8 Create an object ........................................................................................................................... 6 Figure 6.9 Open Sepcification....................................................................................................................... 6 Figure 6.10 Object specification dialog ........................................................................................................ 6 Figure 6.11 Change the stereotype of the object ........................................................................................... 6 Figure 6.12 Interface of Search Vehicle UI ................................................................................................... 6 Figure 6.13 Create another object ................................................................................................................. 6 Figure 6.14 Specification Dialog .................................................................................................................. 6 Figure 6.15 Set the stereotype as control ...................................................................................................... 6 Figure 6.16 Interface of Rental Vehicle control ............................................................................................ 6 Figure 6.17 Interface of the diagram ............................................................................................................. 6 Figure 6.18 To Message ................................................................................................................................ 6 Figure 6.19 Rename the message .................................................................................................................. 6 Figure 6.20 Completed Collaboration Diagram ............................................................................................ 6 Figure 6.21 Collaboration Diagram Exercise................................................................................................ 6 Figure 7.1 ...................................................................................................................................................... 6 Figure 7.2 Create State Diagram by menu .................................................................................................... 6 Figure 7.3 Create State Diagram by toolbar.................................................................................................. 6 Figure 7.4 Create State Diagram by Project Explorer ................................................................................... 6 Figure 7.5 A blank new state diagram is created. .......................................................................................... 6 Figure 7.6 Initial State button........................................................................................................................ 6 Figure 7.7 Create new state ........................................................................................................................... 6 Figure 7.8 Rename the state .......................................................................................................................... 6 Figure 7.9 Resize the state............................................................................................................................. 6 Figure 7.10 Drag the state ............................................................................................................................. 6 Figure 7.11 Rename the state ........................................................................................................................ 6 Figure 7.12 Give the name of state ............................................................................................................... 6 Figure 7.13 Create more states...................................................................................................................... 6 Figure 7.14 Connect the state........................................................................................................................ 6 Figure 7.15 Drag the Repairing state............................................................................................................. 6 Figure 7.16 Format the connector ................................................................................................................. 6 Figure 7.17 Drag to appropriate location ...................................................................................................... 6 Figure 7.18 Open Specification..................................................................................................................... 6 Figure 7.19 Specification Dialog .................................................................................................................. 6 Figure 7.20 Enter the name ........................................................................................................................... 6 8 Table of figures Figure 7.21 Named transition........................................................................................................................ 6 Figure 7.22 Place the caption to a right place ............................................................................................... 6 Figure 7.23 Completed State Diagram .......................................................................................................... 6 Figure 7.24 Exercise state diagram. .............................................................................................................. 6 Figure 8.1 A class diagram. ........................................................................................................................... 6 Figure 8.2 A blank new class diagram is created........................................................................................... 6 Figure 8.4 A blank new class diagram is created........................................................................................... 6 Figure 8.5 The vehicle class .......................................................................................................................... 6 Figure 8.6 UML style of a class .................................................................................................................... 6 Figure 8.7 Create the Branch Class ............................................................................................................... 6 Figure 8.8 Define the multiplicity ................................................................................................................. 6 Figure 8.9 Create the Customer class............................................................................................................ 6 Figure 8.10 Create the RentalLine class........................................................................................................ 6 Figure 8.11 Create the staff class .................................................................................................................. 6 Figure 8.12 Self Assoiciation ........................................................................................................................ 6 Figure 8.13 Complete class diagram ............................................................................................................. 6 Figure 8.14 A class diagram .......................................................................................................................... 6 Figure 9.1 Create Component Diagram by menu.......................................................................................... 6 Figure 9.2 Create Component Diagram by toolbar ....................................................................................... 6 Figure 9.3 Create Component Diagram by Project Explorer ........................................................................ 6 Figure 9.4 A blank new component diagram is created................................................................................. 6 Figure 10.1 Deployment Diagram................................................................................................................. 6 Figure 10.2 Create deployment diagram by menu ........................................................................................ 6 Figure 10.3 Create deployment diagram by toolbar...................................................................................... 6 Figure 10.4 Create deployment diagram by project explorer ........................................................................ 6 Figure 10.5 A new deployment diagram is created. ...................................................................................... 6 Figure 14.1 Visual Paradigm for UML with IDE .......................................................................................... 6 Figure 14.2 The Print Preview Window ........................................................................................................ 6 9 Table of tables Table of tables Table 2-1 Textual Analysis Palette of VPUML ............................................................................................. 6 Table 3-1 The Use Case Diagram Palette of VPUML................................................................................... 6 Table 4-1 The Sequence Diagram Palette of VPUML .................................................................................. 6 Table 4-2 Message flow of the sequence diagram......................................................................................... 6 Table 4-3 Completed sequence diagram........................................................................................................ 6 Table 5-1 The Activity Diagram Palette of VPUML..................................................................................... 6 Table 6-1 Objects of the diagram .................................................................................................................. 6 Table 6-2 Messages if the diagram................................................................................................................ 6 Table 7-1 The State Diagram Palette of VPUML.......................................................................................... 6 Table 7-2 Transitions table ............................................................................................................................ 6 Table 9-1 The Component Diagram Palette of VPUML ............................................................................... 6 Table 10-1 Deployment Diagram Palette ...................................................................................................... 6 Table 14-1 The Print Preview Toolbar .......................................................................................................... 6 10 Case Study Case Study Power Driver is a vehicle rental company. Power Driver has 105 branches over the world. Currently there is no linkage between these branches. Power Driver needs a computer system to connect all these branches together to support better services to the customer in a more efficient way. Following are the requirements of the computer system. The system should be able to store the vehicle records. A vehicle record includes model number, serial number, status, booking schedule and booking history. The status of the vehicle should be available, rented, repairing or reserved. Staffs only allow in searching the vehicle records. Only the branch’s manager allows in maintaining vehicle records. The system stores the customer records. The customer record includes name, ID, status and rental history. The status of the customer can be normal, VIP or suspend. The normal and VIP customers can rent vehicles but suspended customers are not allowed to rent vehicles. All staffs can maintain customer records. But only the branch’s manager allows changing the status of the customers. Each branch has one manager. The system should provide a function for staffs to input the rental record. The staff can only create the rental record for the car in his own working branch. The staff cannot create a rental record for other branches. After the vehicle is returned, the staff needs to update the rental record. The system should have a reserved car function for booking the car. The start of the booking period should be within next 7 days. Normal staff cannot make a booking request to another branch. Only the manager can request a booking to another branch. The staff can use the system to check the availability of the car by using model number, or booking schedule. If there are suitable car(s) for renting, the staff can use the system to reserve or rent the car. If the car is rented, other staffs should not rent the car to another customer until the rental period is over. The staff can search the customer records by using customer’s name, ID or telephone. The system should provide a report generation function to generate a monthly report of the branch. 11 Chapter 2 Textual Analysis Chapter 2 Textual Analysis What is Textual Analysis? Textual analysis is a process to analyze the system domain. It helps to identify the candidate classes in a problem statement. Figure 2.1 A problem statement having textual analysis performed 12 Chapter 2 Textual Analysis Creating a Document for Textual Analysis Method 1 – Creating a blank new textual analysis document using the main menu 1. Click on File on the main menu. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New Textual Analysis on the cascading menu. A blank new textual analysis document appears. Figure 2.2 Create Textual analysis by Menu 13 Chapter 2 Textual Analysis Method 2 – Creating a blank new textual analysis document using the toolbar 1. Click on Create Textual Analysis on the toolbar. A pop-up menu appears. 2. Click on Create Textual Analysis on the pop-up menu. A blank new textual analysis document appears. Figure 2.3 Create Textual Analysis by Toolbar 14 Chapter 2 Textual Analysis Method 3 – Creating a blank new textual analysis document using the Project Explorer 1. Right click on the Textual Analysis directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Textual Analysis on the pop-up menu. A blank new class diagram appears. Figure 2.4 Create textual analysis by project explorer Figure 2.5 A blank new textual analysis document is created. 15 Chapter 2 Textual Analysis The Textual Analysis Toolbar Icon Notation Import Text File Save Text File Save Text As… Cut Copy Paste Search Add Candidate Class Show All View Hide Text Area Show Candidate Class Table Only Show/Hide Candidate Classes Show/Hide Candidate Actors Show/Hide Candidate Use Cases Show/Hide Candidate Work Flows Show/Hide Candidate Unspecified Items Description Import problem statement from a text file Save the problem statement file Save the problem statements as another file Cut text Copy text Paste text Search text Add a new candidate class Show all panes Hide the text pane Show the candidate class table Show/hide candidate classes Show/hide candidate actors Show/hide candidate use cases Show/hide candidate work flows Show/hide candidate unspecified items Table 2-1 Textual Analysis Palette of VPUML 16 Chapter 2 Textual Analysis Importing a Text File as the Problem Statement You can import a text file or type in the problem statement directly in the text area of the textual analysis window. 1. Click on Import Text File on the toolbar. An Open dialog box appears. 2.Select the text file that contains the problem statement. Click on the Open button in the dialog to import the file. The problem statement is imported to the text pane. 17 Chapter 2 Textual Analysis Searching Text in the Problem Statement 1. Click on the Find Text button. A input dialog appears. 2.Input the desired text in the input dialog. Click on Find button in the dialog. If the text is found, the text will be highlighted. 18 Chapter 2 Textual Analysis Creating a New Candidate Item Method 1 – Creating a new candidate item using the textual analysis toolbar 1. Click on the Add Candidate button on the textual analysis toolbar. A cascading menu appears. 19 Chapter 2 Textual Analysis 2.Click on the Add text as Class, Add text as Actor, Add text as Use Case or Add text as Work Flow button on the cascading menu. An input dialog appears. (If you select a phrase in the text pane, the input dialog will not appear. The selected phrase will be the candidate.) 3.Input the candidate name. Click on the OK button in the input dialog. The input dialog is close. The candidate is added to the candidate pane and all the occurrences of the candidate in the text pane are highlighted in green. 20 Chapter 2 Textual Analysis Method 2 – Creating a new candidate item with drag-and-drop technique 1. Select a word or a phrase in the text pane. 2.Drag the word or phrase to the candidate pane. A new candidate class is added to the candidate pane. All the occurrences of the candidate are highlighted (occurrences of the most recently candidate added are highlighted in green and the other candidate occurrences are highlighted in yellow. 21 Chapter 2 Textual Analysis Method 3 – Creating a new candidate item using the popup menu 1. Select a word or a phrase in the text pane. 2. Right click on the word or phrase. A popup menu appears. 22 Chapter 2 Textual Analysis 3. Click on Add text as Class button on the popup menu. The candidate is added to the candidate pane. Method 4 – Creating a new candidate item using the candidate pane 1. Right click on the candidate pane. A popup menu appears. 23 Chapter 2 Textual Analysis 2. Click on Add Candidate button on the popup menu. A cascading menu appears. 3. Click Actor in the cascading menu. An input dialog appears. 24 Chapter 2 Textual Analysis 4. Input the candidate actor name. 5. Click on the OK button in the input dialog. The new candidate is added to the candidate pane. 25 Chapter 2 Textual Analysis Showing/Hiding a Type of Candidates 1. Click Show/Hide Candidate Classes button to show or hide the candidate classes. 26 Chapter 2 Textual Analysis 2. Click Show/Hide Candidate Actors button to show or hide the candidate actors. 3. Try other Show/Hide Candidate button to show or hide the other type of candidate items. 27 Chapter 2 Textual Analysis Rearranging the Locations of Candidate Classes Cascade Layout 1. To rearrange candidate classes in the candidate pane, right click on the container. A pop-up menu appears. 2. Click on Cascade Layout button on the popup menu. The locations of candidate classes were rearranged. 28 Chapter 2 Textual Analysis Title Layout To rearrange candidate classes in the candidate pane, right click on the container. A pop-up menu appears. Click on the Title Layout button on the popup menu. The locations of candidate classes were rearranged. 29 Chapter 2 Textual Analysis Setting the Textual Analysis Window Layout 1. Click on the Hide Text Area button on the textual analysis toolbar. The text area is hidden. 30 Chapter 2 Textual Analysis 2.Click on the Show Candidate Class Table Only button on the textual analysis toolbar. Only the candidate class table is shown in the textual analysis window. 3.Click on the Show All View button on the textual analysis toolbar. All the panes are shown in the textual analysis window. 31 Chapter 2 Textual Analysis Editing the Candidates in Candidate Table 1. Click on the Hide Text Area button on the textual analysis toolbar. The text area is hidden. 2. Click on a cell in the Candidate Class column in the candidate table. 32 Chapter 2 Textual Analysis 3. Rename the candidate name. 4. Rename the candidate name. Press Ctrl + Enter to finish the operation. 33 Chapter 2 Textual Analysis 5.To change the type of the candidate, click on the cell in the Type column in the candidate table. A list of types is shown. 6. Select one of the type in the list. 34 Chapter 2 Textual Analysis 7. To edit the description of a candidate, click on the cell in the Class Description column. 8. Input the description is the cell. 35 Chapter 2 Textual Analysis 9. Press Ctrl + Enter to finish the operation. Creating Models for Existing Candidates 36 Chapter 2 Textual Analysis 1. Right click a candidate in the candidate pane. A popup menu appears. 2. Click on the Create Class/Actor/Use Case/Work Flow Model button in the popup menu. 37 Chapter 2 Textual Analysis 3. The type of the candidate is set to Generated Model. 4. Repeat the above step to create a model for other candidates. 38 Chapter 2 Textual Analysis 5. Click on the Model Tree View tab in the Project Explorer. The generated models are shown. Adding Generated Models on Diagrams 1. Drag a generated actor from the model tree to a use case diagram. 39 Chapter 2 Textual Analysis 2. An actor is added in the use case diagram. 3. Drag a generated class from the model tree to a class diagram. 40 Chapter 2 Textual Analysis 4. A class is added in the class diagram. 41 Chapter 2 Textual Analysis Exercise Perform textual analysis on the problem statement below. Power Driver is a vehicle rental company. Power Driver has 105 branches over the world. Currently there is no linkage between these branches. Power Driver needs a computer system to connect all these branches together to support better services to the customer in a more efficient way. Following are the requirements of the computer system. The system should be able to store the vehicle records. A vehicle record includes model number, serial number, status, booking schedule and booking history. The status of the vehicle should be available, rented, repairing or reserved. Staffs only allow in searching the vehicle records. Only the branch’s manager allows maintaining vehicle records. The system stores the customer records. The customer record includes name, ID, status and rental history. The status of the customer can be normal, VIP and suspend. The normal and VIP customers can rent vehicle but suspended customers are not allow to rent a vehicle. All staffs can maintain the customer record. But only the branch’s manager allows changing the status of the customer. Each branch has one manager. The system should provide a function for staffs to input the rental record. The staff can only create the rental record for the car in his own working branch. The staff cannot create a rental record for other branch. After the vehicle is returned, the staff needs to update the rental record. The system should have a reserved car function for booking the car. The start of the booking period should be within next 7 days. Normal staff can not make a booking request to another branch. Only the manager can request a booking to another branch. The staff can use the system to check the availability of the car by using model number, booking schedule. If there are suitable car(s) for renting, the staff can use the system to reserve or rent the car. If the car is rented, other staff should not rent the car to another customer until the rental period is over. The staff can search the customer records by using customer’s name, ID or telephone. The system should provide a report generation function to generate a monthly report of the branch. Figure 2.6 A problem statement 42 Chapter 3 Use Case Diagram Chapter 3 Use Case Diagram What is a Use Case Diagram? Figure 3.1 A use case diagram 43 Chapter 3 Use Case Diagram Creating a Use Case Diagram Method 1 – Creating a blank new use case diagram using the main menu 1. Click on File on the main menu. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New Use Case Diagram on the cascading menu. A blank new Use Case Diagram appears. Figure 3.2 Create new use case using main menu 44 Chapter 3 Use Case Diagram Method 2 – Creating a blank new use case diagram using the toolbar 1.Click on the Create Use Case Diagram button appears. Figure 3.3 Create use case using toolbar 45 on the toolbar. A blank new use case diagram Chapter 3 Use Case Diagram Method 3 – Creating a blank new use case diagram using the Project Explorer 1. Right click on the Use Case Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on the Create Use Case Diagram. A blank new use case diagram appears. Figure 3.4 Create use case using Project Explorer Figure 3.5 A blank new use case diagram is created. 46 Chapter 3 Use Case Diagram The Use Case Diagram Palette Icon Notation Note Definition The note notation is available on all diagram palettes. A note can be used for commenting additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor The anchor notation is available on all diagram palettes. An anchor is used to line a diagram element and a note. Constraint A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. Package Package is a mechanism for organizing elements into groups. It is used in the Use Case, Class, and Component diagrams. Packages may be nested within other packages. A package may contain both subordinate packages and ordinary model elements. The entire system description can be thought of as a single high-level subsystem package with everything else in it. Subsystem System A subsystem groups diagram elements together. A system/system boundary groups use cases together to accomplish a purpose. Each use case diagram can only have one system. Dependency The dependency link is a semantic relationship between the two elements. It indicates that when a change occurs in one element, there may be a change necessary to the other element. A dependency link can include label and stereotype can be set. Use Case Use case describes the behavior of a system. It is used to structure things in a model. It contains multiple scenarios, each of which describes a sequence of actions that is clear enough for outsiders to understand. (adapted from UMLUG-p) Actor An actor represents a coherent set of roles that users of a system play when interacting with the use cases of the system. 47 Chapter 3 Use Case Diagram An actor participates in use cases to accomplish an overall purpose. An actor can represent the role of a human, a device, or any other systems. Association is used to associate an actor to a use case. It Association shows participation of an actor in a use case. It is a set of links in which a link is a connection among objects. Include is a link that links an inclusion use case with a base Include use case. Extend is a link that links an extension use case with a base Extend use case. Extension use case exents the behaviour of the base use case. Generalization is a relationship between a general element Generalization and a more specific kind of that element. It means that the more specific element can be used whenever the general element appears. This relation is also known as specialization or inheritance link. Realization Collaboration Table 3-1 The Use Case Diagram Palette of VPUML Drawing a Use Case Diagram Creating a Use Case Method 1 – Creating a use case using the Use Case Diagram Palette 1.Click on the Use Case button on the Use Case Diagram Palette. Click on the desired location on the diagram. A new use case appears. 2. Rename the newly created use case. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a use case using the resource centric interface 48 Chapter 3 Use Case Diagram 1. Click on an existing actor on the diagram. Resource icons appear around the actor. 2. Press on the Association -> Use Case resource icon . A new use case appears. 3. Drag the use case to the desired location. Release the mouse button. Î 4. Rename the newly created use case. Press Ctrl + Enter to finish the operation. 49 Chapter 3 Use Case Diagram Î 50 Chapter 3 Use Case Diagram Creating an Actor Method 1 – Creating an actor using the Use Case Diagram Palette 1.Click on the Actor button on the Use Case Diagram Palette. Click on the desired location on the diagram. A new actor appears. 2. Rename the newly created actor. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an actor using the resource centric interface 1. Click on an existing use case on the diagram. Resource icons appear around the use case. 2. Press on the Association -> Actor resource icon 51 . A new actor appears. Chapter 3 Use Case Diagram 3. Drag the actor to the desired location. Release the mouse button. Î 4. Rename the newly created actor. Press Ctrl + Enter to finish the operation. Î Creating a System You can create one and only one system on a use case diagram. 52 Chapter 3 Use Case Diagram 1.Click on the System button on the Use Case Diagram Palette. Click on the desired location on the diagram. A new system appears. 2. Rename the newly created system. Press Ctrl + Enter to finish the operation. Ð 53 Chapter 3 Use Case Diagram 3. Click on the use case once so that the system contains the use case. It is suggested that a system boundary should be created before creating use cases of the system. If the use cases are created in the system boundary, the system boundary will contain the use cases. If the system boundary does not contain a use case, drag the use case in the system boundary to make the system boundary contains the use case. Please note that a system boundary will never contain actors. It is not allowed to create more than one system on a use case diagram. A warning dialog box is shown when you try to create more than one system on a use case diagram. 54 Chapter 3 Use Case Diagram Creating a Collaboration Method 1 – Creating a collaboration using the Use Case Diagram Palette 1.Click on the Collaboration button on the Use Case Diagram Palette. Click on the desired location on the diagram. A new collaboration appears. 2. Rename the newly created collaboration. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a collaboration using the resource centric interface 1. Click on an existing use case on the diagram. Resource icons appear around the use case. 2. Press on the Generalization -> Collaboration resource icon . A new collaboration appears. 3. Drag the collaboration to the desired location. Release the mouse button. Î 55 Chapter 3 Use Case Diagram 4. Rename the newly created collaboration. Press Ctrl + Enter to finish the operation. Î Creating an Association Link Method 1 – Creating an association link using the Use Case Diagram Palette An association relationship can be created between: z A use case z An actor z An actor and a use case and an actor , , or and a use case 1.Click on the Association button on the Use Case Diagram Palette. Drag from either the actor or the use case to the target diagram element. Î 2. Release the mouse button. A new association is created between the diagram elements. 56 Chapter 3 Use Case Diagram Method 2 – Creating an association link using the resource centric interface Diagram elements that an association link can be created from, using the resource centric interface are: z Actor z Use Case 1.Click on an existing diagram element listed above on the use case diagram. Resource icons appear around the diagram element. 2.Press on the Association -> Use Case resource icon (Note: Click association -> actor resource icon for creating association between actors, or between use case and actor). A new diagram element appears. 57 Chapter 3 Use Case Diagram 3. Drag the new diagram element to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. The association link is created between the diagram elements. Defining the Multiplicity of a Role of an Association Link You can define the multiplicity of a role. 1. Right click on an existing association link on the diagram. A pop-up menu appears. 58 Chapter 3 Use Case Diagram 2. Choose the Role A(xxx) on the menu. A cascading menu appears. 3. Choose the Multiplicity on the menu. A cascading menu appears. 4.Choose one of the multiplicities (0, 0..1, 0..*, 1, 1..*, *, Unspecified, Other…) on the cascading menu. Then the multiplicity of the role is set. 59 Chapter 3 Use Case Diagram 5. Repeat the above steps to set the display the multiplicity cascading menu for Role B(xxx). 6. Choose Other… on the menu to specify the multiplicity of the use case. An input dialog box appears. 7. Input the multiplicity of the role such as 0..n. The multiplicity of the other role is set. 60 Chapter 3 Use Case Diagram Creating an <<extend>> Relationship Link Method 1 – Creating an <<extend>> relationship link using the Use Case Diagram Palette 1.Click on the Extend button on the Use Case Diagram Palette. Drag from a use case to the other use case. Î 2. Rename the newly created <<extend>> relationship link. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an <<extend>> relationship link using the resource centric interface 61 Chapter 3 Use Case Diagram 1. Click on an existing use case on the diagram. Resource icons appear around the use case. 2. Press on the Extend -> Use Case resource icon . A new use case appears. 3. Drag the new use case to the target use case. Release the mouse button. Î 4. A new <<extend>> relationship link is created between the use cases. 62 Chapter 3 Use Case Diagram 5. Double Click on the <<extend>> relationship link. A text box appears. 6. Rename the <<extend>> relationship link. Press Ctrl + Enter to finish the operation. Î 7. Drag the <<extend>> relationship name and move it to the desired location. 63 Chapter 3 Use Case Diagram Defining Extension Point 1. Right Click on the base use case. A pop-up menu appears. 2. Check the Extension Point checkbox. The extension point of the base use case appears. => 64 Chapter 3 Use Case Diagram 3.Click on the extension point. A text box appears. Rename the extension point. Press Ctrl + Enter to finish the operation. Î 4. The extension point definition is set. 65 Chapter 3 Use Case Diagram Creating an <<include>> Relationship Link Method 1 – Creating an <<include>> relationship link using the Use Case Diagram Palette 1.Click on the Include button on the Use Case Diagram Palette. Drag from a use case to the other use case. 2. Rename the newly created <<include>> relationship link. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an <<include>> relationship link using the resource centric interface 1. Click on an existing use case on the diagram. Resource icons appear around the use case. 66 Chapter 3 Use Case Diagram 2. Press on the Include -> Use Case resource icon . A new use case appears. 3. Drag the new use case to the target use case. Î 4. Release the mouse button. A new <<include>> relationship link is created between the use cases. Creating a Generalization Relationship Link You can create a generalization relationship link between actors, or between use cases. Method 1 – Creating a generalization relationship link using the Use Case Diagram Palette 67 Chapter 3 Use Case Diagram 1.Click on the Generalization Relationship button on the Use Case Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new generalization relationship link is created between diagram elements. Method 2 – Creating a generalization relationship link using the resource centric interface 1.Click on an existing diagram element (actor or use case) on the diagram. Resource icons appear around the diagram element. 68 Chapter 3 Use Case Diagram 2. Press on the Generalization resource icon . A new diagram element appears. 3. Drag the new diagram element to the target diagram element. Î 4.Release the mouse button. The new generalization relationship link is created between the diagram elements. Editing the Use Case Specification All the properties of a class can be modified using the class specification dialog box. 69 Chapter 3 Use Case Diagram 1. Right click on an existing use case on the diagram. A pop-up menu appears. 2.Click on Open Specification on the pop-up menu. The Specification dialog box appears. The properties such as name, priority rank, stereotype and so on can be modified in the dialog box. 70 Chapter 3 Use Case Diagram 3.Click on the Use Case Description tag. The use case description of the use case appears. (Read the Editing Use Case Description with a Use Case section for more details.) 71 Chapter 3 Use Case Diagram Editing the Use Case Description 1. Right click on the use case. A popup menu appears. 2. Click on the Use Case Description on the popup menu. The use case description of the use case appears. 72 Chapter 3 Use Case Diagram 3.To change the template of the use case, click on the Available Template combo box. Select the desired template in the combo box. 4. The template of the use case description is changed. Select the Main template again. 73 Chapter 3 Use Case Diagram 5. To add a new item in the template, click Add Item button in the dialog. An input dialog appears. 6. Input the item name in the input dialog box. Click OK button to finish the operation. 74 Chapter 3 Use Case Diagram 7. To rearrange the items of the template, click the Move Up 8. Click on the Value column to edit the use case description. 75 button and Move Down button. Chapter 3 Use Case Diagram 9. To edit the flow of events in the use case description, click on the Value column of the Flow of Event item. Click on the table in the Value column to insert a new Actor Input or System Response. 76 Chapter 3 Use Case Diagram 10. After editing a new Actor Input, a new input row will automatically added in the table. 11. Click on the table to adding a new System Response. Then click OK button to finish editing the use case description. 77 Chapter 3 Use Case Diagram Performing Textual Analysis with a Use Case 1. Right click on an existing use case. A pop-up menu appears. 2. Click on Sub Diagrams. A cascading menu appears. 78 Chapter 3 Use Case Diagram 3. Click on Textual Analysis. A cascading menu appears. 4. Click on the Create Textual Analysis. The textual analysis window appears. 79 Chapter 3 Use Case Diagram 5.Find out the nouns in the problem statement. Drag the candidate classes to the Candidate Class Container. The candidate classes are highlighted. (See Chapter 1 - Textual Analysis for more details) Editing the Actor Specification All the properties of an actor can be modified using the specification dialog box. 1. Right click on the actor. A pop-up menu appears. 80 Chapter 3 Use Case Diagram 2.Click on Open Specification. The specification dialog box appears. You can modify the actor’s properties in the specification dialog box. Scheduling the use cases Use cases can be prioritized into 4 categories - Unspecified, Low, Medium and High. 1. Right click on an empty area on the diagram. A pop-up menu appears. 81 Chapter 3 Use Case Diagram 2. Click on Use Case Scheduling on the pop-up menu. The Use Case Scheduling dialog box for the use case diagram appears. It shows a list of use cases on the diagram. 3. Click on a cell in the Rank column of the table. A pull-down box appears. 82 Chapter 3 Use Case Diagram 4.Choose one of the priority categories for the use case. Then the priority is set for the use case. Prioritize other use cases in the table. 83 Chapter 3 Use Case Diagram 5. Click on a cell in the Justification column to input the justification for the priority setting. 6.Click on the Fit Selected Row Height button to adjust the row height (or click on the Fit All Rows Height to adjust the heights of all the rows). 84 Chapter 3 Use Case Diagram 7.Click on the Rank column heading, the use case will be sorted. The use cases can be sorted in either ascending or descending order with the priority ranking. 85 Chapter 3 Use Case Diagram Generating Sequence Diagram with a Use Case 1. Right click on the use case. A popup menu appears. 2.Click Generate Sequence Diagram in the popup menu. A new sequence diagram (System level) will be generated according to the flow of events defined in the use case description of the use case. 86 Chapter 3 Use Case Diagram Example 1.Click on the Use Case button on the Use Case Diagram Palette. Click on an empty area on the use case diagram. A new use case appears. Rename the use case as “Maintain Rental Records”. Figure 3.6 Maintain Rental Records Use Case 2.Repeat the steps above to create more use cases with the names: Issue Vehicle Rental, Maintain Rental Records, Maintain Vehicle Records and Maintain Customer Records and Analyze Rental Report. Figure 3.7 Main Use Cases 87 Chapter 3 Use Case Diagram 3.Click on the use case named as Issue Vehicle Rental. Resource icons appear around the use case. Click on the Association -> Actor resource icon. A new actor appears. Drag it to a desired location and rename it as “Staff”. Figure 3.8 Create an actor by resource centric 4.Click on the use case named as Maintain Rental Records. Resource icons appear the use case. Click on the Association -> Actor resource icon. A new actor appears. Drag the new actor to the actor named as Staff. An association relationship link is created between the actor and the use case. Figure 3.9 Create another use case 88 Chapter 3 Use Case Diagram 5.Repeat the steps above to create a new actor as “BranchManager” and create association relationship links between the actor and the use cases with the names: Maintain Rental Records, Maintain Customer Records and Analyze Rental Report. Figure 3.10 Another Actor 89 Chapter 3 Use Case Diagram 6.Click on the actor named as Staff. Resource icons appear around the actor. Click on the Generalization -> Actor resource icon. A new actor appears. Drag the new actor to the BranchManager actor. The new actor disappears. Then a generalization relationship link is created between the actors. Figure 3.11 Generalization of actor 90 Chapter 3 Use Case Diagram 7.Click on the use case Issue Vehicle Rental. Resource icons appear around the use case. Click on the Extend -> Use Case resource icon. A new use case appears. Drag the new use case to the desired location. Rename the use case as “Request Other Branch for Vehicle Rental”. Then the new use case becomes extension use case. Figure 3.12 Create an extend use case 91 Chapter 3 Use Case Diagram 8.Create an association relationship between the actor named BranchManager and the use case named Request Other Branches for Vehicle Rental. Then rearrange the diagram elements. 92 Chapter 3 Use Case Diagram 9.Right click on the use case named Issue Vehicle Rental. A pop-up menu appears. Check Extension Point on the pop-up menu. The extension point of the use case appears. Click on the extension point. A text box appears. Rename the extension point as “vehicle available”. 10. Double-Click on the extension link. A text box appears. Rename the link as “(available vehicle) [request other branch for vehicle rental]”. 93 Chapter 3 Use Case Diagram 11. Click on the system button on the Use Case Diagram Palette. Click on the use case diagram. A system boundary appears. Rename the system as “Vehicle Rental System”. Drag the use cases into the system boundary to make the system boundary to contain the use cases. Figure 3.13 Completed use case diagram 94 Chapter 3 Use Case Diagram 12. Right click on an empty area on the diagram. A pop-up menu appears. Click Open Specification on the pop-up menu. The use case diagram specification dialog box appears. Click on the Schedule tab. A list of use case is shown. Figure 3.14 Use Case Scheduling dialog 13. Set the priorities of the use cases and input the justifications for the priorities. Then click OK to exit the dialog box. Use Case Maintain Vehicle Records Issue Vehicle Rental Maintain Vehicle Records Maintain Customer Records Request Other Branches for Vehicle Rental Priority High High Medium Medium Low 95 Chapter 3 Use Case Diagram Figure 3.15 Justification of Main Rental Recrods 14. Right click on the use case named Maintain Rental Records on the use case diagram. A pop-up menu appears. Click Sub Diagrams. A cascading menu appears. Click Textual Analysis. A cascading menu appears. Click Create Textual Analysis. A blank textual analysis document is opened. Input the following text in the document. Maintain Rental Records Flow of events 1. The staff login the system 2. The system validates the staff identity with user name and password 3. After validation, the staff can maintain the rental records. The staff can query, insert, update or archive the rental records. a) Query rental records i) Get the query criteria ii) Find the rental records with the criteria b) Insert rental record i) Create a new rental record ii) Fill in the rental information iii) Confirm the changes c) Update rental records i) Find the rental record with record ID ii) Update the rental information in the record iii) Confirm the changes 4. Logout the system. 96 Chapter 3 Use Case Diagram Figure 3.16 Textual analysis 15. Perform textual analysis with the statements. Find out all candidate use case, actor and class in the statements and add them to the Candidate Container. (Read the Textual Analysis tutorial for more details.) Figure 3.17 Find out candidate use case 97 Chapter 3 Use Case Diagram Exercise Draw the diagram below according to the guidelines given in this chapter. Figure 3.18 A use case diagram 98 Chapter 4 Sequence Diagram Chapter 4 Sequence Diagram What is a Sequence Diagram? Figure 4.1 Sequence Diagram Creating a Sequence Diagram Method 1 – Creating a Sequence Diagram using the Menu Bar 1. Click on File on the menu bar. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New Sequence Diagram on the cascading menu. A blank new sequence diagram appears. Figure 4.2 Create sequence diagram using menu bar 99 Chapter 4 Sequence Diagram Method 2 – Creating Sequence Diagram using the Toolbar 1. Click the Create Sequence Diagram button on the toolbar. A blank new sequence diagram appears. Figure 4.3 Create sequence diagram using toolbar 100 Chapter 4 Sequence Diagram Method 3 – Creating a Sequence Diagram using the Project Explorer 1. Right click on the Sequence Diagram directory in the Project Explorer. A popup menu appears. 2. Click on Create Sequence Diagram. A blank new sequence diagram appears. Figure 4.4 Create sequence diagram using Project Explorer 101 Chapter 4 Sequence Diagram Figure 4.5 A blank new sequence diagram is created. 102 Chapter 4 Sequence Diagram The Sequence Diagram Palette Icon Notation Definition A note can be used for comments additional explanation, specification and requirement in a diagram element or at a Note link in the diagram. The contents of a note do not alter the meaning of the model to which it is attached. It can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor Constraint An anchor is to link a diagram element and a note. A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. Subsystem A subsystem groups use cases or packages together. Object can be viewed as an entity at a particular point in time with a specific value and as a holder of identity that has Object different values over time. Associations among objects are not shown. When you place an object tag in the design area, a lifeline is automatically drawn and attached to that object tag. An actor represents a coherent set of roles that users of a system play when interacting with the use cases of the system. Actor An actor participates in use cases to accomplish an overall purpose. An actor can represent the role of a human, a device, or any other systems. A message is a sending of a signal from one sender object to other receiver object(s). It can also be the call of an operation on receiver object by caller object. The arrow can be labeled Message with the name of the message (operation or signal) and its argument values. A sequence number that shows the sequence of the message in the overall interaction as well as a guard condition can also be labeled at the arrow. Duration Message Self Message Create Message Concurrent A message that indicates an action will cause transition from one state to another state. A message that indicates an action will perform at a particular state and stay there. A message that indicates an action that will perform between two states. Concurrent means several actions of the same type can be executed simultaneously. 103 Chapter 4 Sequence Diagram Action state that enables repeated actions. Recursive Table 4-1 The Sequence Diagram Palette of VPUML Drawing a Sequence Diagram Creating an Actor Method 1 – Creating an Actor using the Diagram Palette 1.To create an actor in your sequence diagram, click on the Actor button on the diagram palette and click on the desired location on diagram. A new actor is created. 2. Rename the newly created actor name. Press Ctrl + Enter to finish the operation. Î 104 Chapter 4 Sequence Diagram 3. The actor name is set. Double-click on the toolbar button to set the button as default on the toolbar. (Press Escape or click on any other button to de-select) Method 2 – Creating an actor using the resource centric interface Diagram element that an actor can be created from, using the resource centric interface is: z Object 1. Click on an existing object on the diagram. Resource icons appear around the object. Î 105 Chapter 4 Sequence Diagram 2. Press one of the resource icons with Object ( , ). A new actor appears. 3. Drag the actor to the desired location. The actor is created. Î 106 Chapter 4 Sequence Diagram Creating an Object Method 1 – Creating an Object using the diagram palette 1.Creating an object in your sequence diagram, click on the Object button on the diagram palette and click on the desired location on the diagram. A new object appears. 2. Rename the newly created object. Press Ctrl + Enter to finish the operation. Î 3. The object name is set. Method 2 – Creating an object using the resource centric interface Diagram element that an object can be created from, using the resource centric interface is: z Actor 107 Chapter 4 Sequence Diagram Creating a Message Method 1 – Creating a message using the diagram palette 1. Click on the Message button on the diagram palette. 2. Click anywhere on the message sender, and drag to the target diagram element. Î 3. Rename the newly created message. Î When message is being dragged, a new focus of control will create. There are two methods to maintain the message connected to the same focus of control and not to create a new one. 1. Drag the message with a little of distance each time. 2. Press the Shift button when dragging the message. 108 Chapter 4 Sequence Diagram Creating a Constraint Method 1 – Creating a Constraint using the diagram palette 1. Click on the Constraint button on the diagram palette. 2. Click anywhere on the source diagram element. Drag to the target diagram element. Î 3. Input the constraint in the text field. Press Ctrl + Enter to finish the operation. Î 109 Chapter 4 Sequence Diagram Creating a Duration Message Method 1 – Creating a Duration Message using the diagram palette 1. Click on the Duration Message button on the diagram palette. 2. Click anywhere on the source diagram element. Drag to the target diagram element. Î 3. Rename the newly created duration message. Press Ctrl + Enter to finish the operation. Î 110 Chapter 4 Sequence Diagram Creating a Self Message Method 1 – Creating a Self Message using the diagram palette 1. Click on the Self Message button on the diagram palette. 2. Click on an existing object or the focus of control that you want to create self message. 3. Press F2 to rename the self message. Press Ctrl + Enter to finish the operation. Î 111 Chapter 4 Sequence Diagram 4. The self message name is set. Creating a Create Message Method 1 – Creating a Create Message using the diagram palette 1. Click on the Create Message button on the diagram palette. 2. Press on an existing diagram element. Drag to the target diagram element. Î 3. Press F2 to rename the newly created create message. Press Ctrl + Enter to finish the operation. Î 112 Chapter 4 Sequence Diagram 4. The create message name is set. Creating a Concurrent Method 1 – Creating a concurrent using the diagram palette 1. Click on Concurrent button on the diagram palette. 2. Click on an existing object that you want to create concurrent. 113 Chapter 4 Sequence Diagram 3. Rename the newly created concurrent. Press Ctrl + Enter to finish the operation. 4. The concurrent name is set. Creating a Recursive Method 1 – Creating a recursive using the diagram palette 1. Click on Recursive button on the diagram palette. 114 Chapter 4 Sequence Diagram 2. Click on an existing object that you want to create recursive. 3. Rename the newly created recursive. Press Ctrl + Enter to finish the operation. Î 4. The recursive name is set. 115 Chapter 4 Sequence Diagram Creating a Subsystem Method 1 – Creating a Subsystem using the diagram palette 1.Creating a subsystem in your sequence diagram, click on the Subsystem button palette and click on the desired location on the diagram. A new subsystem appears. 2. Rename the newly created subsystem. Press Ctrl + Enter to finish the operation. Î 3. The subsystem name is set. 116 on the diagram Chapter 4 Sequence Diagram Editing an Actor Specification 1. Right click on an existing actor that you want to edit. A popup menu appears. 2.Click on Open Specification on the pop-up menu. The Specification dialog box appears. The name, description and so on can be modified in the dialog box. 117 Chapter 4 Sequence Diagram Editing an Object Specification 1. Right click on an existing object. A popup menu appears. 2.Click on Open Specification on the popup menu. A Specification dialog appears. The name, description and so on can be modified in the dialog. 118 Chapter 4 Sequence Diagram Editing a Message Type 1. Right click on an existing message that you want to edit. 2. A popup menu is appears, choose the message type you want. Î 3. The popup menu disappears, and the message type is set. 119 Chapter 4 Sequence Diagram Setting Base Classifier Method 1 – Setting in the Object Specification dialog 1. Right click on an existing object. A popup menu appears. 2. Click on Open Specification on the popup menu. A Specification dialog appears. 120 Chapter 4 Sequence Diagram 3. Click on Base classifier, a list will be display showing all the class in the current project. 4.Click on an existing class or click on Create Class to create a new class. Click on Create Class, the Class Specification dialog appears. Setting the new class property, then click OK button. 5. The Base classifier is set. Click OK to finish the operation. 121 Chapter 4 Sequence Diagram Method 2 – Setting in the Popup menu 1. Right click on an existing object. A popup menu appears. 2.Click on Select Class on the popup menu. A submenu appears. Click on Create Class to create a new class or click on an existing class. To search a class, enter the class name in the Search textfield. 122 Chapter 4 Sequence Diagram Setting Object Active 1. Right click on an existing object. A popup menu appears. 2. Click on Active on the popup menu. 3. The object is set to active. 123 Chapter 4 Sequence Diagram Setting Show Destruction 1. Right click on an existing object. A popup menu appears. 2. Click on Show Destruction on the popup menu. 3. The object is set to show Destruction. 124 Chapter 4 Sequence Diagram Generating a Collaboration Diagram 1.Open a collaboration diagram from the Project Explorer. Double click on a blank place on the diagram to generate a new sequence Diagram. 2. A new sequence diagram is generated. 125 Chapter 4 Sequence Diagram 3. A new sequence diagram is generated from the collaboration diagram. => 126 Chapter 4 Sequence Diagram Example 1.Click on the Actor button on the toolbar and click on the desired location on diagram. A new actor is created. Figure 4.6 Select an actor 2. Rename the newly created actor as “Customer”. Press Ctrl + Enter to finish the operation. Î Î 3.Select the newly created actor, the resource icons appear around it. Press Actor Resource icon, and then drag to right side and release the mouse button. A new actor is created. Î Î 127 Chapter 4 Sequence Diagram 4.Double-click the newly created actor and rename it as “Staff”. Press Ctrl + Enter to finish the operation. Press the Object Resource icon, and then drag to the right side and release the mouse button to create a new object. Rename the newly created object as “Vehicle Rental System”. Î 5. Double click on the Customer to Staff message. A textfield appears, input “rent a vehicle”. Î 6. Double click on the Staff to Vehicle message. A textfield appears, input “validate customer by id”. Î 128 Chapter 4 Sequence Diagram 7.Create a message form “Vehicle Rental System” to” Staff”. Rename the newly created message as “customer is valid”. Î 8.Right click on the “customer is valid” message. A popup menu appears. Select “return” to change the message type. Î 9. According to the above steps, create the following messages : Direction From Staff to Vehicle Rental Message name Message type search vehicle based on the customer criteria send vehicle is available return create rental record send vehicle’s key and receipt return System From Vehicle Rental System to Staff From Staff to Vehicle Rental System From Staff to Customer Table 4-2 Message flow of the sequence diagram 129 Chapter 4 Sequence Diagram 10. The completed diagram will look like the following. Table 4-3 Completed sequence diagram 130 Chapter 4 Sequence Diagram Exercise Draw the following diagram according to the guidelines given in this chapter. Figure 4.7 Sequence Diagram Exercise 131 Chapter 5 Activity Diagram Chapter 5 Activity Diagram What is an Activity Diagram? Figure 5.1 An activity diagram 132 Chapter 5 Activity Diagram Creating an Activity Diagram Method 1 – Creating an activity diagram using the menu bar 1. Click on File on the menu bar. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New Activity Diagram on the cascading menu. A blank new activity diagram appears. Figure 5.2 Create activity diagram by menu 133 Chapter 5 Activity Diagram Method 2 – Creating an activity diagram using the toolbar 1. Click on Create Activity Diagram on the toolbar. A blank new activity diagram appears. Figure 5.3 Create activity diagram by toolbar 134 Chapter 5 Activity Diagram Method 3 – Creating an activity diagram using the Project Explorer 1. Right click on Activity Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Activity Diagram on the pop-up menu. A blank new activity diagram appears. Figure 5.4 Create activity diagram by project explorer 135 Chapter 5 Activity Diagram Figure 5.5 A blank new activity diagram is created. The Activity Diagram Palette Icon Notation Note Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor An anchor is used to line a diagram element and a note. Subsystem A subsystem groups diagram elements together. Action State A state that represents the execution of an atomic action, mostly the invocation of an operation. Sub Activity An sub activity is the activity that will perform within a larger activity. Initial State A pseudo state to establish the start of the event into an actual state. Final State A final state will signify when a state transition ends. Transition A transition is a relationship between two states. This transition indicates that control is passed from the one state to another state once the work of the source state is completed. 136 Chapter 5 Activity Diagram Icon Notation Note Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor An anchor is used to line a diagram element and a note. Subsystem A subsystem groups diagram elements together. Action State A state that represents the execution of an atomic action, mostly the invocation of an operation. Sub Activity An sub activity is the activity that will perform within a larger activity. Initial State A pseudo state to establish the start of the event into an actual state. Final State A final state will signify when a state transition ends. Transition A transition is a relationship between two states. This transition indicates that control is passed from the one state to another state once the work of the source state is completed. To emphasize functional flow of control, transitions can be labeled, and can contain parameters, guard conditions and action expressions. Horizontal Synchronization This merge branch bar symbol is also known as a “Synchronization Bar”. It merges concurrent transitions to a single target. It splits a single transition into parallel transitions. Vertical Synchronization This merge branch bar symbol is also known as a “Synchronization Bar”. It merges concurrent transitions to a single target. It splits a single transition into parallel transitions. Decision Point Similar to flowchart, decision point is used to model the conditional flow of control. A decision is shown by labeling each output transition of a decision with a different guard condition. Signal Receipt A signal that may trigger a transition when received. Signal Sending A signal that may trigger a transition to another state in its state machine when sent. Object Object Flow A variety of control flow that represents the relationship between an object and the object, operation, or transition that creates it or uses it. 137 Chapter 5 Activity Diagram Swimlane Swimlane is a partition on interaction diagram for organizing responsibilities for activities. Each zone or lane represents the responsibilities of a particular class. To use swimlane, you must arrange activity diagrams into vertical zones separated by dashed lines. Transitions may cross boundaries. Table 5-1 The Activity Diagram Palette of VPUML Drawing an Activity Diagram Creating an Action State Method 1 – Creating an action state using the Activity Diagram Palette 1.Click on the action state button on the Activity Diagram Palette. Click on the desired location on the diagram. A new action state appears. 2. Rename the newly created action state. Press Ctrl + Enter to finish the operation. Î 138 Chapter 5 Activity Diagram Method 2 – Creating an action state using the resource centric interface Diagram elements that an action state can be created from, using the resource centric interface are: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the Action State resource icon . A new action state appears. 3. Drag the action state to the desired location. Release the mouse button. Î 139 Chapter 5 Activity Diagram 4. Rename the newly created action state. Press Ctrl + Enter to finish the operation. Î Creating a Sub Activity Method 1 – Creating a sub activity using the Activity Diagram Palette 1.Click on the sub activity button on the Activity Diagram Palette. Click on the desired location on the diagram. A new sub activity appears. 2. Rename the newly created sub activity. Press Ctrl + Enter to finish the operation Î Method 2 – Creating a sub activity using the resource centric interface Diagram elements that a sub activity can be created from, using the resource centric interface are: z Action State z Sub Activity z Horizontal Synchronization z Vertical Synchronization z Signal Receipt z Signal Sending z Object Flow 140 Chapter 5 Activity Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the sub activity resource icon . A new sub activity appears. 3. Drag the sub activity to the desired location. Release the mouse button. Î 4. Rename the newly created sub activity. Press Ctrl + Enter to finish the operation. Î 141 Chapter 5 Activity Diagram Create an Initial State 1.Click on the initial state button on the Activity Diagram Palette. Click on the desired location on the diagram. A new initial state appears. 2. Rename the newly created initial state. Press Ctrl + Enter to finish the operation. Î Create a Final State Method 1 – Creating a final state using the Activity Diagram Palette 1.Click on the final state button on the Activity Diagram Palette. Click on the desired location on the diagram. A new final state appears. 2. Rename the newly created final state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a final state using the resource centric interface Diagram elements that a final state can be created from, using the resource centric interface are: z Action State z Sub Activity z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Sending z Object 142 Chapter 5 Activity Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the final state resource icon . A new final state appears. 3. Drag the final state to the desired location. Release the mouse button. Î 4. Rename the newly created final state. Press Ctrl + Enter to finish the operation. Î 143 Chapter 5 Activity Diagram Creating a Horizontal Synchronization Method 1 – Creating a horizontal synchronization using the Activity Diagram Palette 1.Click on the horizontal synchronization button on the Activity Diagram Palette. Click on the desired location on the diagram. A new horizontal synchronization appears. 2. Rename the newly created horizontal synchronization. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a horizontal synchronization using the resource centric interface Diagram elements that a horizontal synchronization can be created from, using the resource centric interface are: z Action State z Sub Activity z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 144 Chapter 5 Activity Diagram 2. Press on the horizontal synchronization resource icon . A new horizontal synchronization appears. 3. Drag the horizontal synchronization to the desired location. Release the mouse button. Î 4. Rename the newly created horizontal synchronization. Press Ctrl + Enter to finish the operation. Î 145 Chapter 5 Activity Diagram Creating a Vertical Synchronization Method 1 – Creating a vertical synchronization using the Activity Diagram Palette 1.Click on the vertical synchronization button on the Activity Diagram Palette. Click on the desired location on the diagram. A new vertical synchronization appears. 2. Rename the newly created vertical synchronization. Press Ctrl + Enter to finish the operation. Method 2 – Creating a vertical synchronization using the resource centric interface Diagram elements that a vertical synchronization can be created from, using the resource centric interface are: z Action State z Sub Activity z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 146 Chapter 5 Activity Diagram 2. Press on the vertical synchronization resource icon . A new vertical synchronization appears. 3. Drag the vertical synchronization to the desired location. Release the mouse button. Î 4. Rename the newly created vertical synchronization. Press Ctrl + Enter to finish the operation. Î Creating a Decision Point Method 1 – Creating a decision point using the Activity Diagram Palette 1.Click on the decision point button on the Activity Diagram Palette. Click on the desired location on the diagram. A new decision point appears. 2. Rename the newly created decision point. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a decision point using the resource centric interface Diagram elements that a decision point can be created from, using the resource centric interface are: z Action State 147 Chapter 5 Activity Diagram z Sub Activity z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the decision point resource icon . A new decision point appears. 3. Drag the decision point to the desired location. Release the mouse button. Î 4. Rename the newly created decision point. Press Ctrl + Enter to finish the operation. Î 148 Chapter 5 Activity Diagram Creating a Signal Receipt Method 1 – Creating a signal receipt using the Activity Diagram Palette 1.Click on the signal receipt button on the Activity Diagram Palette. Click on the desired location on the diagram. A new signal receipt appears. 2. Rename the newly created signal receipt. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a signal receipt using the resource centric interface Below is a list of diagram elements that can create signal receipt with transition using the resource centric interface: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Object 1.Click on any existing diagram elements listed above on the diagram. Resource icons appear around the diagram element. 149 Chapter 5 Activity Diagram 2. Press on the signal receipt resource icon . A new signal receipt appears. 3. Drag the signal receipt to the desired location. Release the mouse button. Î 4. Rename the newly created signal receipt. Press Ctrl + Enter to finish the operation. Î 150 Chapter 5 Activity Diagram Creating a Signal Sending Method 1 – Creating a signal sending using the Activity Diagram Palette 1.Click on the signal sending button on the Activity Diagram Palette. Click on the desired location on the diagram. A new signal sending appears. 2. Rename the newly created signal sending. Press Ctrl + Enter to finish the operation. Method 2 – Creating a signal receipt using the resource centric interface Diagram elements that signal receipt can be created from, using the resource centric interface are: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Object 1.Click on any of the existing diagram elements listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the signal sending resource icon . A new signal sending appears. 151 Chapter 5 Activity Diagram 3. Drag the signal sending to the desired location. Release the mouse button. Î 4. Rename the newly created signal sending. Press Ctrl + Enter to finish the operation. Î 152 Chapter 5 Activity Diagram Creating an Object Method 1 – Creating an object using the Activity Diagram Palette 1.Click on the object button on the Activity Diagram Palette. Click on the desired location on the diagram. A new object is created. 2. Rename the newly created object. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an object using the resource centric interface Below is a list of diagram elements that can create object with transition using the resource centric interface: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 153 Chapter 5 Activity Diagram 2. Press on the object resource icon . A new object appears. 3. Drag the object to the desired location. Release the mouse button. Î 4. Rename the newly created object. Press Ctrl + Enter to finish the operation. Î 154 Chapter 5 Activity Diagram Creating a Transition Method 1 – Creating a transition using the activity diagram palette You can create transition between diagram elements listed below in the activity diagram. z Action State z Sub Activity z Initial State (Note: Cannot be the target diagram element) z Final State (Note: Cannot be the source diagram element) z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on the transition button on the Activity Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new transition is created between the diagram elements. Method 2 – Creating a transition using the resource centric interface Diagram elements that a transition can be created from, using the resource centric interface: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 155 Chapter 5 Activity Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2.Press on the any resource icon with transition ( , , , …). A new diagram element appears. (Note: You must choose the resource icon correspondent to the target diagram element) 3. Drag the new diagram element to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. The transition is created between the diagram elements. 156 Chapter 5 Activity Diagram Creating an Object Flow Method 1 – Creating an object flow using the activity diagram palette You can create transition between diagram elements listed below in the activity diagram. z Action State z Sub Activity z Initial State (Note: Cannot be the target diagram element) z Final State (Note: Cannot be the source diagram element) z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 1.Click on the object flow button on the Activity Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new object flow is created between the diagram elements. Method 2 – Creating an object flow using the resource centric interface Diagram elements that an object flow can be created from, using the resource centric interface: z Action State z Sub Activity z Initial State z Horizontal Synchronization z Vertical Synchronization z Decision Point z Signal Receipt z Signal Sending z Object 157 Chapter 5 Activity Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the object flow to object resource icon . A new diagram element appears. 3. Drag the new diagram element to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. The object flow is created between the diagram elements. 158 Chapter 5 Activity Diagram Creating a Swimlane 1.Click on the swimlane button on the Activity Diagram Palette. Click on the desired location on the diagram. A new swimlane appears. 159 Chapter 5 Activity Diagram 2. Rename the newly created object. Press Ctrl + Enter to finish the operation. Ð 160 Chapter 5 Activity Diagram Example 1. Click on the Initial State button on the Activity Diagram Palette. Click on the desired location on the diagram. A new initial state appears. Figure 5.6 Initial State 2. Click on the initial state. The Resource icons appear around the initial state. Click on the Transition -> Action resource icon. A new action state appears. Drag the action state to the desired location. Rename it as “Validate Customer”. Figure 5.7 Create the actor state 3. Click on the action state. Resource icons appear around the action state. Click on the Transition -> Decision. A new decision point with a transition appears. Drag the decision point to the desired location. Figure 5.8 Create the decision point 161 Chapter 5 Activity Diagram 4. Click on the decision point. Resource icons appear around the decision point. Click on the Transition -> Decision resource icon. A new decision point with a transition appears. Drag the decision point to the desired location. Double click on the transition that between the decision points. A text box appears. Rename the transition as “[invalid customer]”. Figure 5.9 Create another decision point 5. Click on the lastly created decision point. Resource icons appear around the diagram element. Click on the Transition -> Action resource icon. A new action state with a transition appears. Rename the new action state as “Register Customer”. Rename the transition between the new action state and the decision point as “[register]”. 162 Chapter 5 Activity Diagram Figure 5.10 Create another action state 6. Click on the lastly created decision point. Resource icons appear around the diagram element. Click on the Transition -> Final State resource icon. A new final state with a transition appears. Drag the final state to the desired location, and rename the transition that between the decision point. Rename the final state as “[exit]”. Figure 5.11 Create the final state 163 Chapter 5 Activity Diagram 7. Click on the Initial Sate button on the Activity Diagram Palette. Click on the desired location on the diagram. A new initial state appears. Click on the new initial state. Resource icons appear around the initial state. Click on the Transition -> Action. A new action state appears. Drag the new action state to the Register Customer action state. A transition is created between the new initial state and the Register Customer action state. Figure 5.12 Completed Activity Diagram 164 Chapter 5 Activity Diagram Exercise Draw the diagram below according to the guidelines given in this chapter. Figure 5.13 An activity diagram 165 Chapter 6 Collaboration Diagram Chapter 6 Collaboration Diagram What is Collaboration Diagram? Figure 6.1 Collaboration Diagram 166 Chapter 6 Collaboration Diagram Creating a Collaboration Diagram Method 1 – Creating a Collaboration Diagram using the Menu Bar 1.Click on File on the menu bar. The file menu appears. 2.Click on New Diagram on the file menu. A cascading menu appears. 3.Click on New Collaboration Diagram on the cascading menu. A blank new collaboration diagram appears. 167 Chapter 6 Collaboration Diagram Method 2 – Creating a Collaboration Diagram using the Toolbar 1.Click on Create Collaboration Diagram on the toolbar. A blank new collaboration diagram appears. 168 Chapter 6 Collaboration Diagram Method 3 – Creating a Collaboration Diagram using the Project Explorer 1. Right click on Collaboration Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Collaboration Diagram. A blank new collaboration diagram appears. 169 Chapter 6 Collaboration Diagram Figure 6.2 A blank new collaboration diagram is created. 170 Chapter 6 Collaboration Diagram The Collaboration Diagram Palette Icon Notation Definition A note can be used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The Note contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor Constraint An anchor is to line a diagram element and a note. A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such asassociation, global, parameter. You may also define your own constraints. Package is a mechanism for organizing elements into groups. It is used in the Use Case, Class, and Component diagrams. Package Packages may be nested within other packages. A package may contain both subordinate packages and ordinary model elements. The entire system description can be thought of as a single high-level subsystem package with everything else in it. Subsystem A subsystem groups use cases or packages together. The dependency link is a semantic relationship between the two Dependency elements. It indicates that when a change occurs in one element, there may be a change necessary to the other element. A dependency link can include label and stereotype can be set. An object can be viewed as an entity at a particular point in time with a specific value and as a holder of identity that has different Object values over time. Associations among objects are not shown. When you place an object tag in the design area, a lifeline is automatically drawn and attached to that object tag. You can define object attributes and assign initial values. A classifier role is a specific role played by a participant in a collaboration. It specifies Classifier Role a restricted view of a classifier, defined by what is required in the collaboration. 171 Chapter 6 Collaboration Diagram Link A link is a connection between two objects. It is a tuple of object references, and also an instance of association. (UMLUG-red) Relationships between classifier roles are defined by association roles. An association role is shown with the usual association line. The name string of the association Association Role role follows the same syntax as for the classifier role. If the name is omitted, a line connected to classifier role symbols denotes an association role. Message to Message from The action that performs from one object to another. The action that another object performs to itself. An actor represents a coherent set of roles that users of a system play when interacting with the use cases of the system. An Actor actor participates in use cases to accomplish an overall purpose. An actor can represent the role of a human, a device, or any other systems Generalization is a relationship between a general element and a more specific kind of that element. It means that the more Generalization specific element can be used whenever the general element appears. This relation is also known as specialization or inheritance link. A swimlane is a way to group activities performed by the same actor on an activity diagram or to group activities in a single Swimlane thread (Douglass 1999). Each zone or lane represents the responsibilities of a particular class. To use swimlane, you must arrange activity diagrams into vertical zones separated by dashed lines. Transitions may cross boundaries Table 6-1 Collaboration Diagram Palette of VPUML Drawing a Collaboration Diagram Creating an Object Method 1 – Creating an Object using the Diagram Palette 1.Click on Object button on the Diagram Palette and click on the desired location on diagram. A new object is created. 172 Chapter 6 Collaboration Diagram 2. Rename the newly created object. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an object using the resource centric interface Diagram element that an object can be created from, using the resource centric interface is: z Actor 1. Click on an existing actor. The resource icons appear around the diagram element. Î 2. Press on the Link to Object resource icon . A new object appears. 3. Drag the object to the desired location. Release the mouse button. Î 173 Chapter 6 Collaboration Diagram 4. Rename the newly created object. Press Ctrl + Enter to finish the operation. Î Creating an Actor Method 1 – Creating an actor using the Diagram Palette 1.To create an actor in your collaboration diagram, click on the Actor button on the Diagram Palette and click on to the desired location on diagram. A new actor appears. 2. Rename the newly created actor name. Press Ctrl + Enter to finish the operation. 3. The actor name is set. 174 Chapter 6 Collaboration Diagram Method 2 – Creating an actor using the resource centric interface Diagram element that an actor can be created from, using the resource centric interface is: z Object 1. Click on an existing object. The resource icons appear around the diagram element. Î 2. Press on the Link to Actor resource icon . A new actor appears. 3. Drag the actor to the desired location. Release the mouse button. Î 4. Rename the newly created actor. Press Ctrl + Enter to finish the operation. Î 175 Chapter 6 Collaboration Diagram Creating a Package Method 1 – Creating a package using the Diagram Palette 1.To create a package in your collaboration diagram, click on the Package button on the Diagram Palette and click on to the desired location on diagram. A new package appears. 2. Rename the newly created package name. Press Ctrl + Enter to finish the operation. 3. The package name is set. Creating a Subsystem Method 1 – Creating a subsystem using the Diagram Palette 1.To create a subsystem in your collaboration diagram, click on the Subsystem button Palette and click on to the desired location on diagram. A new subsystem appears. 2. Rename the newly created subsystem name. Press Ctrl + Enter to finish the operation. 176 on the Diagram Chapter 6 Collaboration Diagram 3. The subsystem name is set. Creating a Classifier Role Method 1 – Creating a Classifier Role using the Diagram Palette 1.To create a classifier role in your collaboration diagram, click on the Classifier Role button Diagram Palette and click on to the desired location on diagram. A new classifier role appears. 2. Rename the newly created classifier role name. Press Ctrl + Enter to finish the operation. 3. The classifier role name is set. Creating a Link Method 1 - Creating a link 1. Click on Link button on the diagram palette. 2. Click on an existing actor or object. Drag to the target diagram element. 177 on the Chapter 6 Collaboration Diagram 3. Release the mouse button. Method 2 - Creating a link using the resource centric interface Diagram elements that a link can be created from, using the resource centric interface are: z Actor z Object 1. Click on the object. The resource icons appear around the object. 2. Press on the Actor button . An actor appears. 3. Drag the actor to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. A link is created between the object and the actor. 178 Chapter 6 Collaboration Diagram Creating an Association Role Method 1 - Creating an association role 1. Click on Association Role button on the diagram palette. 2. Click on an existing classifier role. Drag to the target diagram element. 3. Release the mouse button. Method 2 - Creating an association role using the resource centric interface Diagram elements that an association role can be created from, using the resource centric interface are: z Classifier Role 1. Click on the classifier. The resource icons appear around the classifier. 2. Press on the Classifier Role . A classifier role appears. 3. Drag the classifier to the target diagram element. The target diagram element is selected. Î 4.Release the mouse button. An association role is created between the ClassifierRole1 and the ClassifierRole2. 179 Chapter 6 Collaboration Diagram Creating a Message to Method 1 - Creating a message to 1. Click on Message To button on the Diagram Palette. 2. Click on the link that you want to create message. 3. Rename the newly created message to. Press Ctrl + Enter to finish the operation. Creating a Message from Method 1 - Creating a message from 1. Click on Message from button on the Diagram Palette. 180 Chapter 6 Collaboration Diagram 2. Click on the link that you want to create message from. 3. Rename the newly created message from. Press Ctrl + Enter to finish the operation. Reorder Sequence Numbers of Messages 1. Right click on a blank place on the diagram. A popup menu appears. 181 Chapter 6 Collaboration Diagram 2.Click on Reorder Messages… on the popup menu. The Collaboration Diagram Specification dialog appears. A list of messages is shown with their sequence number. 3. Right click on a message in the dialog. A popup menu appears. 182 Chapter 6 Collaboration Diagram 4. Click Move Up / Move Down in the popup menu. The message will be moved up or down 5. Click on the Reset Sequence Number in the dialog. The sequence numbers of the messages are updated. 183 Chapter 6 Collaboration Diagram 6.Click on the OK button. The dialog is closed. The sequence numbers of the messages on the diagram are updated. Creating a Swimlane Method 1 - Creating a swimlane 1. Click on Swimlane button on the Diagram Palette. It is suggested that the swimlane should be created before any other diagram elements in collaboration diagram. It is because the swimlane is a containment diagram element, if any other diagram elements are created before the swimlane, these diagram elements may need to relocate. Once the diagram element is contained by swimlane, when the swimlane is moved, all the diagram elements contained by the swimlane will be moved too. 184 Chapter 6 Collaboration Diagram 2. Click on anywhere in the diagram. A new swimlane appears on the diagram. The first created swimlane is always placed on the top of the diagram, and the second created swimlane will be placed under the first created swimlane, and so on. You can move the swimlane up or down by dragging the swimlane over the swimlane bar. 3. Rename the newly created swimlane. Press Ctrl + Enter to finish the operation. If you want to resize the swimlane, you can move the cursor over the edge on the swimlane bar. Then drag it to the appropriate size you want and release the mouse. 185 Chapter 6 Collaboration Diagram Creating a Generalization Relationship You can create generalization relationship between actors. 1. Click on the generalized actor. The resource icons appear around the actor. 2. Press on the generalization from actor resource icon . An actor appears. 3. Drag the actor to the target diagram element. The target diagram element is selected. Î 4.Release the mouse button. A generalization relationship is created between the generalized actor and the specialized actor. 186 Chapter 6 Collaboration Diagram Editing an Object Specification You can edit the specification of an object. 1. Right click on the object you want to edit. A pop-up menu appears. 2.Click on Open Specification. The properties of the object can be modified using the object specification dialog box. 187 Chapter 6 Collaboration Diagram Editing an Actor Specification 1. Right click on the actor. A pop-up menu appears. 2.Click on Open Specification. The actor specification dialog box appears. The properties of the actor specification can be modified using the actor specification dialog box. 188 Chapter 6 Collaboration Diagram Generating a Sequence Diagram 1.Open a collaboration diagram from the Project Explorer. Double click on a blank place on the diagram to generate a new sequence Diagram. 2. A new sequence diagram is generated. 189 Chapter 6 Collaboration Diagram 3. A new sequence diagram is generated from the collaboration diagram. => 190 Chapter 6 Collaboration Diagram Example 1.Click on the Swimlane icon on the toolbar, and then click anywhere in the diagram. A swimlane appears in the diagram. Figure 6.3 Create a swimlane 2. Rename the newly created swimlane as “Actor”. Press Ctrl + Enter to finish the operation. Figure 6.4 Give a name to swimlane 191 Chapter 6 Collaboration Diagram 3.Click on the Swimlane icon on the toolbar to create three more swimlane(s) on the diagram. Name it as “UI”, “Control” and “Model”. The diagram will look as follow. Figure 6.5 Create more swimlane 4. Click on the Actor button on the toolbar, and then click on the Actor swimlane. An actor is created. Figure 6.6 Create an actor 5. Rename the newly created actor name as “Customer”. Press Ctrl + Enter to finish the operation. Î 192 Chapter 6 Collaboration Diagram 6. Click on the Actor button on the toolbar to create another actor as “Staff”. Î 7. Click on the Link button on the toolbar. Press on “Customer” and then drag to “Staff” to create a link. Figure 6.7 Create another actor 8.Click on “Staff”, the resource icons appear around the “Staff”. Click on the Object icon swimlane to create an object. Î 193 , drag to “UI” Chapter 6 Collaboration Diagram 9. Rename the newly created object as “Search Vehicle UI”. Figure 6.8 Create an object 10. Right click on the mouse button on the “Search Vehicle UI”. A pop-up menu appears. Figure 6.9 Open Specification 194 Chapter 6 Collaboration Diagram 11. Click on Open Specification, the object specification dialog box appears. Figure 6.10 Object specification dialog 12. Click on the Stereotype pull-down box, choose boundary. Then click OK to close the dialog box. Figure 6.11 Change the stereotype of the object 195 Chapter 6 Collaboration Diagram 13. The Interface of “Search Vehicle UI” will change as the following figure. Figure 6.12 Interface of Search Vehicle UI 14. Press on the Object icon , drag to Control swimlane to create another object. Figure 6.13 Create another object 196 Chapter 6 Collaboration Diagram 15. Rename the newly created object as “Rental Vehicle Control”, and then right click on it to open the object specification dialog box. Figure 6.14 Specification Dialog 16. Set the Stereotype type as control. Then click OK to close the dialog box. Figure 6.15 Set the stereotype as control 197 Chapter 6 Collaboration Diagram 17. The interface of the “Rental Vehicle Control” will change as the following figure. Figure 6.16 Interface of Rental Vehicle control 18. According to the following table, create other objects on the diagram. Object Name Stereotype Search Vehicle Control control Vehicle none Validate Customer UI boundary Validate Customer Control Customer control none Link with Rental Vehicle Control Search Vehicle Control Staff, Rental Vehicle Control Rental Vehicle Control Validate Customer Control Table 6-2 Objects of the diagram 198 Placement Control swimlane Model swimlane UI swimlane Control swimlane Model swimlane Chapter 6 Collaboration Diagram 19. The diagram will look like the following: Figure 6.17 Interface of the diagram 20. Click on the Message To icon on the toolbar. Then click on the link which is between Customer and Staff. Figure 6.18 To Message 21. Rename the message to as “1. rent a vehicle”. Figure 6.19 Rename the message 199 Chapter 6 Collaboration Diagram 22. According to the following table, create the message to and message from on the diagram. From To Staff Validate Customer UI Validate Customer UI Rental Vehicle Control Rental Vehicle Validate Customer Control Control Validate Customer Customer Control Customer Validate Customer Control Validate Customer Rental Vehicle Control Control Rental Vehicle Validate Customer UI Control Validate Customer UI Staff Staff Search Vehicle UI Search Vehicle UI Rental Vehicle Control Search Vehicle Control Vehicle Rental Vehicle Control Search Vehicle Control Vehicle Message Type message to message to name 2. input customer id 3. validateCustomer message to 4. validateCustomer message to 5. isSuspended message from 6. boolean message from 7. customer message from 8. String message from message to message to 9. customer is valid 10. input model number 11. searchAvailableVehicle 12. searchAvailableVehicle 13. isAvailable message to message to Search Vehicle Control Rental Vehicle Control Search Vehicle UI message from 14. boolean message from 15. vehicle message from 16. String Staff message from Staff Customer message from Customer Staff message to 17. vehicle is no available 18. suggest other choice 19. not accept other choice Search Vehicle Control Rental Vehicle Control Search Vehicle UI Table 6-3 Messages if the diagram 200 Chapter 6 Collaboration Diagram 23. The completed diagram will look like the following. Figure 6.20 Completed Collaboration Diagram 201 Chapter 6 Collaboration Diagram Exercise Draw the following diagram according to the guidelines given in this chapter. Figure 6.21 Collaboration Diagram Exercise 202 Chapter 7 State Diagram Chapter 7 State Diagram What is a State Diagram? Figure 7.1 A state diagram 203 Chapter 7 State Diagram Creating a State Diagram Method 1 – Creating a State Diagram using the Menu Bar 1. Click on File on the menu bar. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New State Diagram on the cascading menu. A blank new state diagram appears. Figure 7.2 Create State Diagram by menu 204 Chapter 7 State Diagram Method 2 – Creating a State Diagram using the Toolbar 1. Click on Create State Diagram in the toolbar. A blank new state diagram appears. Figure 7.3 Create State Diagram by toolbar 205 Chapter 7 State Diagram Method 3 – Creating a State Diagram using the Project Explorer 1. Right click on Create State Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create State Diagram. A blank new state diagram appears. Figure 7.4 Create State Diagram by Project Explorer 206 Chapter 7 State Diagram Figure 7.5 A blank new state diagram is created. 207 Chapter 7 State Diagram The State Diagram Palette Icon Notation Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. Note The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor Constraint An anchor is to line a diagram element and a note. A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. Subsystem A subsystem groups use cases or packages together. A state is a condition or situation in the life of an object during which it performs some activities, satisfies some State conditions or waits for some events. An object is not always in the same state at a given time. However, an object cannot be in undefined/unknown state A concurrent state (also known as a concurrent composite state) is divided into two or more substates (called regions). It is a state that contains other state vertices (states, Concurrent State pseudostates, etc.). Naturally, any substate of a concurrent state may also be a composite state of either type. Any state enclosed within a composite state is called a substate of that concurrent state. A submachine state represents the invocation of a state machine defined elsewhere. The submachine state is depicted as a normal state with the Submachine State appropriate “include” declaration within its internal transitions compartment. As an option, the submachine state may contain one or more stub states, which represent already created states. A call state is an action state that has exactly one call action Call State as its entry action. It is useful in object flow modeling to reduce notational ambiguity over which action is taking input or providing output. 208 Chapter 7 State Diagram An action state is a shorthand for a state with an entry action and at least one outgoing transition involving the implicit event of completing the entry action (there may be several such transitions if they have guard conditions). Action states should not have internal transitions, outgoing transitions based on explicit events, or exit actions, use normal states Action State for this situation. Transitions leaving an action state should not include an event signature. Such transitions are implicitly triggered by the completion of the action in the state. The transitions may include guard conditions and actions. The normal use of an action state is to model a step in the execution of an algorithm (a procedure) or a workflow process. Initial State Final State A pseudo state to establish the start of the event into an actual state. The final state symbol represents the completion of the activity. Junction point (see Figure 29 -- Junction point) is used for joining and splitting transition paths. Regardless of whether the junction point was reached from state State 0 or from state State1, the Junction Point outgoing paths are the same for both cases. If the state machine in this example is in state State1 and b is less than 0 when event e1 occurs, the outgoing transition will be taken only if one of the three downstream guards is true. Thus, if a is equal to 6 at that point, no transition will be triggered. In the dynamic choice point (see Figure 30 -- Dynamic choice point), a decision on which branch to take State dynamic choice point is only made after the transition from State1 is taken and the choice point is reached. Note that the action associated with that incoming transition computes a new value. This new value can then be used to determine the outgoing transition to be taken. History state is a state machine describes the dynamic aspects of an object whose current behavior depends on its History State past. It allows a sequential composite state to remember the last substate that was active in it prior to a transition from the composite state. If transition to this state is activated, the object resumes the state it last had. A transition is a relationship between two states. This transition indicates that control is passed from the one state to Transition another state once the condition of the source state is satisfied. To emphasize functional flow of control, transitions 209 Chapter 7 State Diagram can be labeled, and can contain parameters, guard conditions and action expressions. Synch state A synch state is a special state that enables synchronization of control between two concurrent regions in a state machine. This merge branch bar symbol is also known as a Vertical synchronization “Synchronization Bar”. It merges concurrent transitions to a single target. It splits a single transition into parallel transitions. This merge branch bar symbol is also known as a Horizontal Synchronization “Synchronization Bar”. It merges concurrent transitions to a single target. It splits a single transition into parallel transitions. A stub state can appear within a submachine state and represents an actual subvertex contained within the referenced state machine. It can serve as Stub State a source or destination of transitions that connect a state vertex in the containing state machine with a subvertex in the referenced state machine. StubState is a child of State. Table 7-1 The State Diagram Palette of VPUML 210 Chapter 7 State Diagram Drawing a State Diagram Creating an Initial State Method 1 – Creating an initial state using the diagram palette 1. To create an initial state in your state diagram, click on the initial State button and click on the desired location. A new initial state is created. on the diagram palette 2. Rename the newly created initial state name. Press Ctrl + Enter to finish the operation. Î 3. The initial state name is set. 211 Chapter 7 State Diagram Creating a State Method 1 – Creating a state using the diagram palette 1. Click State button on the diagram palette and click on the desired location. A new state is created. 2. Rename the newly created state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a state using the resource centric approach Diagram elements that a state can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 212 Chapter 7 State Diagram 1. Click on an existing initial state. The resource icons appear around the diagram element. Î 2. Press on the mouse button on the State icon . A new state appears. 3. Drag the state to the desired location. Î 4. Rename the newly created state, and press Ctrl + Enter to finish the operation. Î 213 Chapter 7 State Diagram Creating a Concurrent State Method 1 – Creating a concurrent state using the diagram palette 1. Click Concurrent State button concurrent state is created. on the diagram palette and click on the desired location. A new 2. Rename the newly created concurrent state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a concurrent state using the resource centric approach Diagram elements that a concurrent state can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 214 Chapter 7 State Diagram Creating a Submachine State Method 1 – Creating a submachine state using the diagram palette 1. Click submachine State button submachine state is created. on the diagram palette and click on the desired location. A new 2. Rename the newly created submachine state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a submachine state using the resource centric approach Diagram elements that a concurrent state can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 215 Chapter 7 State Diagram Creating a Call State Method 1 – Creating a call state using the diagram palette 1. Click call State button created. on the diagram palette and click on the desired location. A new call state is 2. Rename the newly created call state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a call state using the resource centric approach Diagram elements that a call state can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 216 Chapter 7 State Diagram Creating an Action State Method 1 – Creating an action state using the diagram palette 1. Click action state button created. on the diagram palette and click on the desired location. A new action state is 2. Rename the newly created action state. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an action state using the resource centric approach Diagram elements that an action state can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 217 Chapter 7 State Diagram Creating a Junction Point Method 1 – Creating a Junction Point using the diagram palette 1. Creating a junction point in your state diagram, click on the Junction Point icon palette and click to the desired location. A new junction point appears. on the diagram 2. Rename the newly created junction point name. Press Ctrl + Enter to finish the operation. Î 3. The junction point name is set. Method 2 – Creating a junction point using the resource centric interface Diagram elements that a junction can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 218 Chapter 7 State Diagram Creating a State Dynamic Choice Point Method 1 – Creating a state dynamic choice point using the diagram palette 1. To create a state dynamic choice point in your state diagram, click on the State Dynamic Choice Point button created. on the diagram palette and click on the desired location. A new state dynamic choice point is 2. Rename the newly created state dynamic choice point name. Press Ctrl + Enter to finish the operation. Î 3. The state dynamic choice point name is set. Method 2 – Creating a State Dynamic Choice Point using the resource centric interface Diagram elements that a state dynamic choice point can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State 219 Chapter 7 State Diagram Creating a History State Method 1 – Creating a History State using the diagram palette 1. To create a history state in your state diagram, click on the History State icon and click to the desired location. A history state is created. on the diagram palette 2. Rename the newly created history state name. Press Ctrl + Enter to set the history state name. Î 3. The history state name is set. Method 2 – Creating a History State using the resource centric interface Diagram elements that a history can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z State Dynamic Choice Point 220 Chapter 7 State Diagram Creating a Transition Method 1 – Creating a transition using the diagram palette You can create transition between diagram elements listed below in the state diagram. z Initial State z State z Final State z Junction Point z Dynamic Point z History State z Vertical Synchronization Bar 1. To create a transition in your state diagram, click on the transition icon click on the source diagram element. 2. Then drag to the target diagram element. 3. A transition is created between the initial state and state. 221 on the diagram palette and Chapter 7 State Diagram 4. Right click the transition, a pop-up menu is displayed. 5. The transition specification dialog box is displayed. 222 Chapter 7 State Diagram 6. Enter “vehicle initial” in the Name field. 7. Click OK to close the transition specification dialog box. 8. Move the transition name to appropriate location. 223 Chapter 7 State Diagram Method 2 – Creating a transition using the resource centric interface Diagram elements that a transition can be created from, using the resource centric interface are: z Initial State z State z Junction Point z Dynamic Point z History State z Vertical Synchronization Bar 1. Click on the initial state. The resource icons appear. 2. Press on the mouse button on the include icon . A new state appears. 3. Drag the new state to the desired location. Release the mouse button. Î 4. A transition is created between the initial state and state. 224 Chapter 7 State Diagram Creating a Synch state Method 1 – Creating a Synch state using the diagram palette 1. To create a synch state in your state diagram, click on the synch state button and click to the desired location. A new synch state appears. on the diagram palette 2. Rename the newly created synch state name. Press Ctrl + Enter to finish the operation. Î 3. The synch state name is set. Method 2 – Creating a Synch State using the resource centric interface Diagram elements that a synch state can be created from, using the resource centric interface are: z Initial State z Junction Point z Dynamic Point z History State z Vertical Synchronization Bar 225 Chapter 7 State Diagram Creating a Vertical Synchronization Bar Method 1 – Creating a vertical synchronization bar using the diagram palette 1. Creating a vertical synchronization bar in your state diagram, click the vertical synchronization bar icon on the diagram palette and click to the desired location. A new vertical synchronization appears. 2. Rename the newly created vertical synchronization name. Press Ctrl + Enter to finish the operation. Î 3. The vertical synchronization name is set. Method 2 – Creating a vertical synchronization bar using the resource centric interface Diagram elements that a vertical synchronization can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point 226 Chapter 7 State Diagram z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State Creating a Horizontal Synchronization Bar Method 1 – Creating a horizontal synchronization bar using the diagram palette 1. Creating a horizontal synchronization bar in your state diagram, click the horizontal synchronization bar icon on the diagram palette and click to the desired location. A new horizontal synchronization appears. 2. Rename the newly created horizontal synchronization name. Press Ctrl + Enter to finish the operation. Î 3. The horizontal synchronization name is set. 227 Chapter 7 State Diagram Method 2 – Creating a horizontal synchronization bar using the resource centric interface Diagram elements that a horizontal synchronization can be created from, using the resource centric interface are: z State z Concurrent State z Submachine State z Call State z Action State z Initial State z Junction Point z State Dynamic Choice Point z History State z Synch State z Vertical Synchronization Bar z Horizontal Synchronization Bar z Stub State Editing a State Object Specification You can edit the specification of a state. 1. Right click on the state that you want to edit. A pop-up menu appears. 228 Chapter 7 State Diagram 2. Click on Open Specification. A state specification dialog box appears. The name and other related information in the General tab can be modified in the state specification. 229 Chapter 7 State Diagram Example 1. Click on the initial state button state appears. on the toolbar, and then click to the desired location. A new initial Figure 7.6 Initial State button 2. Select the newly created initial state, the resource centric is displayed. Then click on state icon and drag to the desired location. Î 3. Rename the newly created state as “Available”. Î 4. Click the state button on the tool bar to create one more state. Figure 7.7 Create new state 5. Rename the newly created state as “Not Available”. Figure 7.8 Rename the state 230 Chapter 7 State Diagram 6. Select the Not Available state, and then select the resize box. Figure 7.9 Resize the state 7. Drag it to make the size of “Not Available” state larger. Figure 7.10 Drag the state 231 Chapter 7 State Diagram 8. Click on the state button on the toolbar, and then click inside the “Not Available” state. Figure 7.11 Rename the state 232 Chapter 7 State Diagram 9. Rename the newly created state as “Repairing”. Figure 7.12 Give the name of state 233 Chapter 7 State Diagram 10. Then create two more states inside the “Not Available state” and rename them as “Rented” and “Booked” respectively. Figure 7.13 Create more states 11. Select the “Available” state, and then press on the state icon on the resource centric. Figure 7.14 Connect the state 234 Chapter 7 State Diagram 12. Drag to the “Repairing” state to create a transition. Figure 7.15 Drag the Repairing state 13. Press on the new transition. Figure 7.16 Format the connector 235 Chapter 7 State Diagram 14. Drag it to the appropriate location. Figure 7.17 Drag to appropriate location 15. Right click on the transition. A pop-up menu appears. Figure 7.18 Open Specification 236 Chapter 7 State Diagram 16. Click on Open Specification. The transition specification dialog box appears. Figure 7.19 Specification Dialog 17. Enter “send to repairing” in the Name field and click OK. Figure 7.20 Enter the name 237 Chapter 7 State Diagram 18. The transition name is displayed on the diagram. Figure 7.21 Named transition 19. Drag the transition name to appropriate location. Figure 7.22 Place the caption to a right place 238 Chapter 7 State Diagram 20. According to above method, follow the table below to create more transitions on the diagram, and adjust the transitions and transition names to appropriate locations. From Repairing Available Rented Available Booked Booked To Available Rented Available Booked Available Rented Name repaired rental issued returned booking issued booking cancelled booking change to rental Table 7-2 Transitions table 21. The completed diagram will look as follow. Figure 7.23 Completed State Diagram 239 Chapter 7 State Diagram Exercise Draw the below diagram according to the guidelines given in this chapter. Figure 7.24 Exercise state diagram. 240 Chapter 8 Class Diagram Chapter 8 Class Diagram What is a Class Diagram? Figure 8.1 A class diagram. Creating a Class Diagram Method 1 – Creating a blank new class diagram using the main menu 1. Click on File on the main menu. The file menu appears. 2. Click on New Diagram on the file menu. A cascading menu appears. 3. Click on New Class Diagram on the cascading menu. A blank new class diagram appears. 241 Chapter 8 Class Diagram Method 2 – Creating a blank new class diagram using the toolbar 1. Click on Create Class Diagram on the toolbar. A pop-up menu appears. 2. Click on Create Class Diagram on the pop-up menu. A blank new class diagram appears. 242 Chapter 8 Class Diagram Method 3 – Creating a blank new class diagram using the Project Explorer 1. Right click on the Class Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Class Diagram on the pop-up menu. A blank new class diagram appears. 243 Chapter 8 Class Diagram Figure 8.2 A blank new class diagram is created. 244 Chapter 8 Class Diagram The Class Diagram Palette Icon Notation Note Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor An anchor is used to line a diagram element and a note. Constraint Model Package A package is a mechanism for organizing elements into groups. It is used in the Use Case, Class, and Component diagrams. Packages may be nested within other packages. A package may contain both subordinate packages and ordinary model elements. The entire system description can be thought of as a single high-level subsystem package with everything else in it Subsystem Class A subsystem groups diagram elements together. A Class is a description for a set of objects that shares the same attributes, and has similar operations, relationships, behaviors and semantics. Generalization Generalization is a relationship between a general element and a more specific kind of that element. It means that the more specific element can be used whenever the general element appears. This relation is also known as specialization or inheritance link. Usage Usage is a dependency situation in which one element (the client) requires the presence of another element (the supplier) for its correct functioning or implementation. Realization Realization is the relationship between a specialization and its implementation. It is an indication of the inheritance of behavior without the inheritance of structure. One classifier specifies a contract such that another classifier guarantees to carry out Realization is used in two places: one is between interfaces and the classes that realize them, and the other is between use cases and the collaboration that realize them. Association Association is represented by drawing a line between classes. Associations represent structural relationships between classes and can be named to facilitate model understanding. 245 Chapter 8 Class Diagram If two classes are associated, you can navigate from an object of one class to an object of the class. Aggregation Aggregation is a special kind of association in which one class represents as the larger class that consists of a smaller class. It has the meaning of “has-a” relationship. Composition Composition is a strong form of aggregation association. It has strong ownership and coincident lifetime of parts by the whole. A part may belong to only one composite. Parts with non-fixed multiplicity may be created after the composite itself. But once created, they live and die with it (that is, they share lifetimes). Such parts can also be explicitly removed before the death of the composite. N-ary Association N-ary associations are associations that connect more than two classes. Each instance of the association is an n-tuple of values from the respective classes. There are several characteristics for n-ary associations, which are: (i) Multiplicity for ternary associations can be specifie; (ii) The name of the association (if any) is shown near the diamond; (iii) Role adornments can appear on each path as with a binary association; (iv) The multiplicity on a role represents the potential number of instance tuples in the association when the other N-1 values are fixed. Indeed, binary association is a special case that it has its own notation. Association Class Association class is an association that is also a class. It has both association and class properties. It can have attributes, operations and even other associations. It usually helps to further define a many-to-many relationship. Dependency The dependency link is a semantic relationship between the two elements. It indicates that when a change occurs in one element, there may be a change necessary to the other element. A dependency link can include label and stereotype can be set. Abstraction Binding Dependency Permission Collaboration Containment Table 8-1 The Class Diagram Palette of VPUML 246 Chapter 8 Class Diagram Creating a Class Method 1 – Creating a class using the Class Diagram Palette 1.Click on the Class button on the Class Diagram Palette. Click on the desired location on the diagram. A new class appears. 2. Rename the newly created class. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a class using the resource centric interface Diagram elements that a class can be created from, using the resource centric interface are: z Class z Package z N-ary Association 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 247 Chapter 8 Class Diagram 2. Press one of the resource icons with Class ( , , , ...). A new class appears. 3. Drag the new class to the desired location. Release the mouse button. Î 4. Rename the newly created class. Press Ctrl + Enter to finish the operation. Î Adding an Attribute Method 1 – Adding an attribute to a class using the pop-up menu 248 Chapter 8 Class Diagram 1. Right click on the class. A pop-up menu appears. 2. Click on New attribute on the pop-up menu. A new attribute is added to the class. 3. Double click on the newly created attribute. Î 249 Chapter 8 Class Diagram 4. Press Ctrl + Enter to finish the operation. Method 2 – Adding an attribute to a class using the specification dialog box 1. Right click on an existing class on the diagram. A pop-up menu appears. 250 Chapter 8 Class Diagram 2. Click on Open specification on the pop-up menu. The class specification dialog box appears. 3. Click on the Attributes tab in the specification dialog box. The attribute table appears. 251 Chapter 8 Class Diagram 4. Right click on the attribute table. A pop-up menu appears. 5.Click on Add… on the pop-up menu. The Attribute Specification dialog appears. In the General tab, edit attribute properties – Name, Initial Value, Multiplicity, Visibility, Type, Scope, Documentation and Visible. 252 Chapter 8 Class Diagram 6.Click on the Java Attribute Code Detail in the dialog. Set the final, transient, and volatile properties for the attribute. 253 Chapter 8 Class Diagram 7.Click on OK button to close the Attribute Specification dialog box. The attribute is added to the class. Click on OK button to close the Class Specification. 8. The new attribute is added to the class. Adding an Operation Method 1 – Adding an operation to a class using the pop-up menu 254 Chapter 8 Class Diagram 1. Right click on an existing class on the diagram. A pop-up menu appears. 2. Click on New operation in the pop-up menu. A new operation is added. 3. Rename the operation name. Press Ctrl + Enter to finish the operation. Î 255 Chapter 8 Class Diagram Method 2 – Adding an operation in a class using the specification dialog box 1. Right click on an existing class. A pop-up menu appears. 256 Chapter 8 Class Diagram 2. Click on Open Specification in the pop-up menu. The class specification dialog box appears. 3. Click on the Operation tab. The operation table appears. 257 Chapter 8 Class Diagram 4. Right click on the operation table. A pop-up menu appears. 5.Click on Add... button on the popup menu. The Operation Specification dialog appears. In the General tab, edit the properties – Name, Stereotype, Return Type, Visibility, Scope, Documentation, Abstract, Query and Visible. 258 Chapter 8 Class Diagram 6. Click on the Parameter tab in the Operation Specification dialog. 259 Chapter 8 Class Diagram 7.To add parameter to the operation, click the Add… button in the dialog. The Parameter Specification dialog appears. Edit the parameter properties – Name, Stereotype, Type, Direction, Default Value and Documentation. 8.Click the Java Parameter Code Detail tab in the Parameter Specification dialog. Edit the final properties for the parameter. 260 Chapter 8 Class Diagram 9. Click on OK to close the Parameter Specification dialog. The new parameter is added to the operation. 261 Chapter 8 Class Diagram 10. Click the Java Operation Code Detail in the Operation Speciation dialog. Edit the properties - final, native and synchronized for the operation. 262 Chapter 8 Class Diagram 11. Click OK button to close the Operation Specification dialog. The new operation is added to the class. 12. Click OK button to close the Class Specification dialog. Sorting Attributes and Operations 263 Chapter 8 Class Diagram 1. Right click on an existing class. A pop-up menu appears. 2. Click on Presentation Options in the popup menu. A cascading menu appears. 264 Chapter 8 Class Diagram 3. Click on Attribute Sort Type in the popup menu. A cascading menu appears. 4. Choose one of the sorting types in the cascading menu. The attributes of the class will be sorted. 265 Chapter 8 Class Diagram 5. Right click on the class again. A pop-up menu appears. 6. Click on Presentation Options in the popup menu. A cascading menu appears. 266 Chapter 8 Class Diagram 7. Click on Operation Sort Type in the popup menu. A cascading menu appears. 8. Choose one of the sorting types in the cascading menu. The operations of the class will be sorted. Visibility Setting By default, the visibility style is set to icon style. The visibility style for a class can be changed. 267 Chapter 8 Class Diagram 1. Right click on an existing class. A pop-up menu appears. 2. Click on Presentation Options on the pop-up menu. A cascading menu appears. 268 Chapter 8 Class Diagram 3.Click on Visibility Style on the pop-up menu. A cascading menu appears. Check the UML Style option. 4. The visibility style of the class is set to UML style. 269 Chapter 8 Class Diagram 5. To disable the visibility, check the Off checkbox. The visibility is disabled. Defining an Abstract Class 1. Right click on an existing class. A pop-up menu appears. 270 Chapter 8 Class Diagram 2. Check the Abstract Class option on the pop-up menu. The class is set to abstract class. Defining Active Class 1. Right click on an existing class. A pop-up menu appears. 2. Check on the Action checkbox on the pop-up menu. The class is set to active. 271 Chapter 8 Class Diagram Defining the Stereotype of a Class 1. Right click on an existing class. A pop-up menu appears. 272 Chapter 8 Class Diagram 2. Click on Open Specification on the pop-up menu. The specification dialog box appears. 3.Click on the General tab. Click on the Stereotype pull-down box and select one of the stereotypes (Interface, Entity, Control, Boundary, or define a new stereotype by typing the stereotype name in the pull-down box). 273 Chapter 8 Class Diagram 4. Click on OK to close the specification dialog box. The shape of the class will be changed. Interface Entity Control Boundary User define 274 Chapter 8 Class Diagram Creating a Package Method 1 – Creating a package using the Class Diagram Palette 1.Click on the Package button on the Class Diagram Palette. Click on the desired location on the diagram. A new package appears. 2. Rename the newly created package. Press Ctrl + Enter to finish the operation. Î 3. Create a class in the package. Then the package contains the class. 4. The project tree in the Project Explorer will show the hierarchy of the packages. 275 Chapter 8 Class Diagram Method 2 – Creating a package using the resource centric interface Diagram elements that a package can be created from, using the resource centric interface are: z Class z Package 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press one of the resource icons with Class ( , , ...). A new class appears. 276 Chapter 8 Class Diagram 3. Drag the new package to the desired location. Release the mouse button. Î 4. Rename the newly created package. Press Ctrl + Enter to finish the operation. Î Creating a Collaboration Method 1 – Creating a collaboration using the Class Diagram Palette 1.Click on the Collaboration button on the Class Diagram Palette. Click on the desired location on the diagram. A new collaboration appears. 2. Rename the newly created collaboration. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a collaboration using the resource centric interface Collaboration can be created from an existing collaboration 277 , using the resource centric interface. Chapter 8 Class Diagram 1. Click on a collaboration listed above on the diagram. Resource icons appear around the collaboration. 2. Press one of the resource icons with collaboration. A new collaboration appears. 3. Drag the new collaboration to the desired location. Release the mouse button. Î 4. Rename the newly created collaboration. Press Ctrl + Enter to finish the operation. Î 278 Chapter 8 Class Diagram Defining a Constraint A constraint can be created between diagram elements. 1.Click on the Constraint button on the Class Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Rename the newly created constraint. Press Ctrl + Enter to finish the operation. Î 279 Chapter 8 Class Diagram Creating an Association Link Method 1 – Creating an association link using the Class Diagram Palette An association can be created between z A class , z An Association Class , and z A N-ary association . 1.Click on the Association button on the Class Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new association is created between the diagram elements. Method 2 – Creating association using the resource centric interface Diagram elements that an association link can be created from, using the resource centric interface are: z A class , z An association class z An N-ary association , or . 280 Chapter 8 Class Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the Association -> Class button. A new class appears. 3. Drag the new class to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. The association link is created between the diagram elements. 281 Chapter 8 Class Diagram Creating an Aggregation Relationship Link Method 1 – Creating an aggregation relationship link using the Class Diagram Palette An aggregation relationship link can be created between classes. 1.Click on the Aggregation button on the Class Diagram Palette. Drag from a class to the other class. Î 2. Release the mouse button. A new aggregation relationship link is created between the classes. Method 2 – Creating an aggregation relationship using the resource centric interface 1. Click on an existing class. Resource icons appear the class. 282 Chapter 8 Class Diagram 2. Press on the Aggregation -> class resource icon. A new class appears. 3. Drag the new class to the target class. The new class disappears. The target class is selected. Î 4. Release the mouse button. The aggregation relationship link is created between the classes. Method 3 – Creating an aggregation relationship link using an existing association relationship link You can change an existing association relationship link to an aggregation relationship link. 1. Right click on an existing association. A pop-up menu appears. 283 Chapter 8 Class Diagram 2. Click Role A / Role B on the popup menu. A cascading menu appears. 3. Click Aggregation Kind on the cascading menu. A list of aggregation kinds appears. 4.Click on Aggregation on the pop-up menu. The association relationship is changed to an aggregation relationship link. 284 Chapter 8 Class Diagram Creating a Composition Relationship Link Method 1 – Creating a composition relationship link using the Class Diagram Palette A composition relationship link can be created between classes. 1.Click on the Composition button on the Class Diagram Palette. Drag from a class to the other class. Î 2. Release the mouse button. A new composition relationship link is created between the classes. Method 2 – Creating a composition relationship link using the resource centric interface 1. Click on an existing class in the diagram. Resource icons appear the class. 285 Chapter 8 Class Diagram 2. Press on the Composition -> Class . A new class appears. 3. Drag the new class to the target class. The new class disappears. The target class is selected. Î 4. Release the mouse button. The composition relationship link is created between the classes. Method 3 – Creating a composition relationship link using an existing association relationship link An existing association relationship link can be changed to a composition relationship link. 1. Right click on an existing association link. A pop-up menu appears. 286 Chapter 8 Class Diagram 2. Click on Role A / Role B on the popup menu. A cascading menu appears. 3. Click on Aggregation Kind in the cascading menu. A list of aggregation kinds appears. 4.Click on Composition on the pop-up menu. The association relationship link is then changed to a composition relationship link. 287 Chapter 8 Class Diagram Defining a Association Role Method 1 – Defining association roles using the pop-up menu 1. Right click on an existing association. A popup menu appears. 2. Click on Role A / Role B on the popup menu. A cascading menu appears. 288 Chapter 8 Class Diagram 3.To edit if the role is navigable or not, click on the Navigable check box. The navigation between the elements is changed 4.To edit the multiplicity of a role, right click on the association. A popup menu appears. Click on Role A / Role B on the popup menu. A cascading menu appears. 5. Click on Multiplicity on the cascading menu. A list of multiplicities appears. 289 Chapter 8 Class Diagram 6. Choose one of the multiplicities. The multiplicity of the role is set. 7. Use the same way to set the multiplicity of the other role. 8.To edit the visibility of the role, right click on the association. A popup menu appears. Click on Role A / Role B. A cascading menu appears. 9. Click on Visibility on the cascading menu. A list of visibilities appears. Choose one of the visibilities. 290 Chapter 8 Class Diagram 10. To edit the aggregation kind, right click on the association. A popup menu appears. Click on Role A / Role B. A cascading menu appears. 11. Click on Aggregation Kind on the cascading menu. A list of aggregation types appears. 12. Choose one of the aggregation kinds. The aggregation type of the role is changed. 291 Chapter 8 Class Diagram 13. To edit a role name, right click on the association. A popup menu appears. Click Role A / Role B on the popup menu. A cascading menu appears. 14. Click Edit Role A/B Role Name on the cascading menu. An input dialog appears. 15. Click on the OK button to finish the operation. 292 Chapter 8 Class Diagram Method 2 – Defining association roles using Association Specification dialog 1. Right click on the association. A popup menu appears. 293 Chapter 8 Class Diagram 2. Click Open Specification… on the popup menu. The Association Specification dialog appears. 294 Chapter 8 Class Diagram 3.Edit the Role name, Multiplicity and Navigable properties of the roles. Or click on the button near the Role text field. The Association End Specification dialog appears. Edit the properties of the role. 4. Click on the Qualifier tab on the Association End Specification dialog. 295 Chapter 8 Class Diagram 5.Click the Add… button on the Association End Specification dialog. The Attribute Specification dialog appears. (See Adding an Attribute Section) 6. Click on the OK button on the Attribute Specification dialog. The new attribute is added as a qualifier. 296 Chapter 8 Class Diagram 7. Click OK button on the Association End Specification dialog. Creating a Generalization Relationship Link Method 1 – Creating a generalization relationship link using the Class Diagram Palette A generalization relationship link can be created between: z A class and a class , or z A package and a package . 1.Click on the Generalization button on the Class Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2.Release the mouse button. A new generalization relationship link is created between the diagram elements. Method 2 – Creating a generalization relationship link using the resource centric interface Diagram elements that a generalization relationship link can be created from, using the resource centric interface: z A class , and z A package . 297 Chapter 8 Class Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the Generalization -> class button resource icon. A new diagram element appears. 3.Drag the new diagram element to the target diagram element. The new diagram element disappears. The target diagram element is selected. Î 4. Release the mouse button. The generalization relationship link is created between the diagram elements. 298 Chapter 8 Class Diagram Creating a Realization Relationship Link Method 1 – Creating a realization relationship link using the Class Diagram Palette A realization relationship link is created between classes. 1.Click on the Realization button on the Class Diagram Palette. Drag from a class to the other class. Î 2. Release the mouse button. A new realization relationship link is created between the classes. Method 2 – Creating a realization relationship link using the resource centric interface 299 Chapter 8 Class Diagram 1. Click on a class on the diagram. Resource icons appear around the class. 2. Press on the Realization -> class resource icon . A new class appears. 3. Drag the new class to the target class. The new class disappears. The target class is selected. Î 4. Release the mouse button. The realization relationship link is created between the classes. 300 Chapter 8 Class Diagram Creating a Dependency Relationship Link Method 1 – Creating a dependency relationship using the Class Diagram Palette The dependency relationship link can be created between: z A class and a class , z A packages and a package z A class and a package , or 1.Click on the Dependency button on the Class Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new dependency relationship link is created between the diagram elements. Method 2 – Creating a dependency relationship link using the resource centric interface Diagram elements that a dependency relationship link can be created from, using the resource centric interface are: z A class , and z A package. 301 Chapter 8 Class Diagram 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the resource icon with dependency ( , ,…). A new diagram element appears. 3.Drag the new diagram element to the target diagram element. The new diagram element disappears. The target diagram element is selected. Î 4. Release the mouse button. The dependency relationship link is created between the diagram elements. Creating an Association Class Method 1 – Creating an association class using the Class Diagram Palette 1.Click on the Association class button on the Class Diagram Palette. Drag on the association relationship link to the target class. 302 Chapter 8 Class Diagram 2. Release the mouse button. The target class becomes an association class. Method 2 – Creating an association class using the resource centric interface 1. Click on an existing association relationship link. Resource icons appear the association relationship link. 2. Press on the Association class resource icon . A new class appears. 3. Drag the class to the desired location. Release the mouse button. 4. Rename the newly created association class. Press Ctrl + Enter to finish the operation. 303 Chapter 8 Class Diagram Creating an N-ary Association between Classes Method 1 – Creating an n-ary association between classes using the Class Diagram Palette 1.Click on the n-ary button on the Class Diagram Palette. Click on the desired location on the diagram. A new n-ary association element is created. 2.Click on the newly created n-ary association element. Resource icons appear around the n-ary association element. 3.Click on one type of association (Association , Aggregation , or Composition -> Class the Class Diagram Palette. Drag from the n-ary association element to a class on the diagram. 304 ) on Chapter 8 Class Diagram 4.Release the mouse button. A new association link is created between the class and the n-ary association element. Repeat the steps above to make the n-ary association element to link to more classes. Method 2 – Creating an n-ary association using the resource centric interface 1.Click on the n-ary button on the Class Diagram Palette. Click on the desired location on the diagram. A new n-ary association element appears. 2.Click on the newly created n-ary association element. Resource icons appear around the n-ary association element. 3. Click on one type of associations ( , , , …). A new class appears. 4.Drag the new class to the desired location. Release the mouse button. The association is created between the new class and the n-ary association element. Î 305 Chapter 8 Class Diagram 5. Repeat the steps above to make the n-ary association element to link to more classes. Creating a Containment Relationship Method 1 – Creating an containment relationship using the Class Diagram Palette A containment relationship can be created z Between a class and a class , z Between a package and any type of diagram elements, z Between a subsystem and any type of diagram elements, z Between a model and any type of diagram elements, 1.Click on the Containment button on the Class Diagram Palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new containment relationship is created between the diagram elements. 306 Chapter 8 Class Diagram Method 2 – Creating containment relationship using the resource centric interface Diagram elements that a containment relationship can be created from, using the resource centric interface are: z A class , z A package , z A subsystem , or z A model , 1.Click on an existing diagram element listed above on the diagram. Resource icons appear around the diagram element. 2. Press on the Containment -> Class button. A new class appears. 307 Chapter 8 Class Diagram 3. Drag the new class to the target diagram element. The target diagram element is selected. Î 4. Release the mouse button. The containment relationship is created between the diagram elements. Creating a Class Diagram with Real Time Code Generation Method 1 – Creating a blank new class diagram using with real time code generation the main menu 1.Click on File on the main menu. The file menu appears. 2.Click on New Diagram on the file menu. A cascading menu appears. 3.Click on New Class Diagram with Real Time Code Generation on the cascading menu. A blank new class diagram appears. 308 Chapter 8 Class Diagram Method 2 – Creating a blank new class diagram with real time code generation using the toolbar 1.Click on Create Class Diagram on the toolbar. A pop-up menu appears. 2.Click on Create Class Diagram with Real Time Code Generation on the pop-up menu. A blank new class diagram appears. 309 Chapter 8 Class Diagram Method 3 – Creating a blank new class diagram using the Project Explorer 1.Right click on the Class Diagram directory in the Project Explorer. A pop-up menu appears. 2.Click on Create Class Diagram with Real Time Code Generation on the pop-up menu. A blank new class diagram appears. Figure 8.3 A blank new class diagram is created. 310 Chapter 8 Class Diagram Method 4 – Real Time Code Generation for an Existing Class Diagram 1. Right click on a blank place on an existing class diagram. A popup menu appears. 311 Chapter 8 Class Diagram 2. Check the Show Code Pane check box. 3. The Code Pane is shown below the class diagram. 312 Chapter 8 Class Diagram 4. Right click on the class diagram again. A popup menu appears. 5. Check the Real Time Generate Code check box. 313 Chapter 8 Class Diagram 6. Click on any existing class in the class diagram. The code will be generated in the Code Pane. Real Time Code Generation for a Class 1. Create a new class on the class diagram. The generated code for the class is shown in the Code Pane. 314 Chapter 8 Class Diagram 2. Right click on the class. A popup menu appears. 3. Check the Abstract check box. The code is update immediately. 315 Chapter 8 Class Diagram 4. Right click on the class. A popup menu appears. 5. Click on Open Specification on the popup menu. The Class Specification dialog appears. 316 Chapter 8 Class Diagram 6.Click on the Java Class Code Detail tab in the Class Specification dialog. The class can be set to final or interface. 7. Check the interface check box. The code will be updated. 317 Chapter 8 Class Diagram Real Time Code Generation for a Class Attribute 1. Right click on an existing class on the class dialog. A popup menu appears. 2.Click on New Attribute on the popup menu. A new attribute is added to the class and the code in the Code Pane is updated at the same time. 318 Chapter 8 Class Diagram 3. Right click on the class. A popup menu appears. 4. Click on Open Specification on the popup menu. The Class Specification dialog appears. 319 Chapter 8 Class Diagram 5. Click on the Attributes tab in the Class Speciation dialog. A list of attributes is shown. 6. Double click on an attribute. The Attribute Specification dialog appears. 320 Chapter 8 Class Diagram 7. Edit the attribute properties – Name, Initial Value, Visibility and Type. 321 Chapter 8 Class Diagram 8.Click on the Java Attribute Code Detail tab on the Attribute Specification dialog. Check the final check box. 9.Click on the OK button on the Attribute Specification dialog to close it. The Class Specification dialog is active again. 322 Chapter 8 Class Diagram 10. Click on the OK button on the Class Specification dialog to close it. The code for the attribute is updated. Real Time Code Generation for a Class Operation 1. Right click on an existing class. A popup menu appears. 323 Chapter 8 Class Diagram 2.Click on New Operation on the popup menu. A new operation is added to the class and the code generated for the operation is added to the Code Pane. 3. Right click on the class. A popup menu appears. 324 Chapter 8 Class Diagram 4. Click on Open Specification on the popup menu. The Class Specification dialog appears. 5. Click on the Operations tab in the Class Specification dialog. A list of operations is shown. 325 Chapter 8 Class Diagram 6. Double click on an operation. The Operation Specification dialog appears. 326 Chapter 8 Class Diagram 7. Edit the operation properties – Name and Return Type. 327 Chapter 8 Class Diagram 8. Click on the Java Operation Code Detail tab in the Operation Specification dialog. 328 Chapter 8 Class Diagram 9. An operation can be set to be final, native or synchronized. Click on the Parameters tab in the dialog 329 Chapter 8 Class Diagram 10. Click on the Add… button to add a parameter. The Parameter Speciation dialog appears. 11. Edit the parameter properties – Name and Type. 330 Chapter 8 Class Diagram 12. Click the Java Parameter Code Detail in the Parameter Specification dialog. 331 Chapter 8 Class Diagram 13. A parameter can be set to be final. Click on the OK button in the dialog to close it. The Operation Specification dialog is active again. 332 Chapter 8 Class Diagram 14. A new parameter is added to the operation. Click the OK button to close the Operation Speciation dialog. The Class Specification dialog is active again. 15. Click the OK button in the Class Specification dialog. The code generated for the operation is updated. 333 Chapter 8 Class Diagram Real Time Code Generation for a Class with Package 1. Create a new package on the class diagram. 2. Place an existing class in the package. The code generated for the class is updated. 334 Chapter 8 Class Diagram Real Time Code Generation for Importing a Package 1. Create a new package on the class diagram. 2.Create a dependency relationship between an existing class and the new package. The code generated for the class is updated. 335 Chapter 8 Class Diagram Real Time Code Generation for Importing a Class 1. Create a new class on the class diagram. 2.Create a dependency relationship between a class and the new class. The code generated for the importing class is updated. 336 Chapter 8 Class Diagram Example 1.Click on the class button on the Class Diagram Palette. Click on the desired location on the class diagram. A new class appears. Rename the class as “Vehicle”. Then right click on the class. A pop-up menu appears. Click on N ew Attribute on the pop-up menu. A new attribute is added to the class. Double click on the new attribute. A text box appears. Type “-regNo” in the text box. (- for private, + for public, # for protected). Add more attributes: -modelNo, . Add more operations: +isAvailable():Boolean, . Figure 8.4 The vehicle class 2.Right click on the Vehicle class. A pop-up menu appears. Click on Visibility Option on the pop-up menu. A cascading menu appears. Click on UML Style on the cascading menu. Figure 8.5 UML style of a class 3.Click on the Vehicle class. Resource icons appear around the class. Click on the Association -> Class resource icon. A new class appears. Drag the new class to the desired location. Rename the new class as “Branch”. An association relationship is created between the classes. Figure 8.6 Create the Branch Class 337 Chapter 8 Class Diagram 4.Right click on the association link. A pop-up menu appears. Click on Role A(Vehicle). A cascading menu appears. Click on Multiplicity on the cascading menu. A list of multiplicities appears. Click on 0..*. The multiplicity of Vehicle role is set to 0..*. Right click on the association link again. A pop-up menu appears. Click on Role B(Branch) in the pop-up menu. A cascading menu appears. Click on Multiplicity on the cascading menu. A list of multiplicities appears. Click on 1 on the cascading menu. The multiplicity of the Branch role is set to 1. Right click on the new association link. A pop-up menu appears. Click on Role B(Branch). A cascading menu appears. Uncheck the Navigable checkbox on the cascading menu. Figure 8.7 Define the multiplicity 5.Create a new class. Rename the class as “Rental”. Then create another new class and rename the class as “Customer”. Create an association relationship link between the Customer class and Rental class. Set the multiplicity of Customer role to 1 and the Rental role to 0..*. Right click on the new association link. A pop-up menu appears. Click on Role B(Rental) on the pop-up menu. A cascading menu appears. Uncheck the Navigable checkbox on the cascading menu. Figure 8.8 Create the Customer class 338 Chapter 8 Class Diagram 6.Click on the Rental class. Resource icons appear around the class. Click on Composition -> Class resource icon. A new class appears. Drag the new class to the desired location. Rename the new class as “RentalLine”. A composition relationship is created between the classes. Set the multiplicity of Rental role to 1 and RentalLine role to 0..*., and set the Rental role to not navigable. Figure 8.9 Create the RentalLine class 7.Click on the Branch class. Resource icons appear around the class. Click on Aggregation -> Class resource icon. A new class appears. Drag the new class to the desired location. Rename the new class as “Staff”. A composition relationship link is created between the classes. Set the multiplicity of Staff role to 1 and of Branch role to 0..*. Figure 8.10 Create the staff class 339 Chapter 8 Class Diagram 8.Click on the Staff class. Resource icons appear around the class. Click on Self Association resource icon. A new self association link is created with the class. Right click on the self association. A pop-up menu appears. Click on Role A(Staff) in the pop-up menu. A cascading menu appears. Click Edit Role A Role name on the cascading menu. A text box appears. Type in “Manager” as the role name. Right click on the self association again. A pop-up menu appears. Click on Role B(Staff) in the pop-up menu. A cascading menu appears. Click Edit Role B Rolename on the cascading menu. A text box appears. Type in “Staff” as the role name. Set the Role A multiplicity to 1 and Role B multiplicity to 0..*. Set the Role A to not navigable. Figure 8.11 Self Assoiciation 340 Chapter 8 Class Diagram 9. Below is the completed class diagram. Figure 8.12 Complete class diagram 341 Chapter 8 Class Diagram Exercise Draw the diagram below according to the guidelines given in this chapter. Figure 8.13 A class diagram 342 Chapter 9 Component Diagram Chapter 9 Component Diagram Creating a Component Diagram Method 1 – Creating a Component Diagram using the Menu Bar 1.Click on File on the menu bar. The file menu appears. 2.Click on New Component on the file menu. A cascading menu appears. 3.Click on New Component Diagram on the cascading menu. A blank new component diagram appears. Figure 9.1 Create Component Diagram by menu 343 Chapter 9 Component Diagram Method 2 – Creating a Component Diagram using the Toolbar icon on the toolbar. A blank new component 1.Click on Create New Component Diagram diagram appears. Figure 9.2 Create Component Diagram by toolbar Method 3 – Creating a Component Diagram using the Project Explorer 1. Right click on Component Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Component Diagram. A blank new component diagram appears. Figure 9.3 Create Component Diagram by Project Explorer 344 Chapter 9 Component Diagram Figure 9.4 A blank new component diagram is created The Component Diagram Palette Icon Notation Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The Note contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Anchor An anchor is to line a diagram element and a note. The dependency is a semantic relationship between the two elements. It indicates that when a change occurs in one Dependency element, there may be a change necessary to the other element. A dependency link can include label and stereotype can be set A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed Constraint in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. 345 Chapter 9 Component Diagram A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of Component interfaces. Components represent all kinds of elements pertaining to the piecing together of software applications. They could be simple files or dynamically loaded libraries. Component Instance of a component. Instance An interface is a collection of operations that are used to specify a service of a class or a component. Each interface often specifies only a limited part of the behavior of an actual class. Interface Characteristics of interface are: (i) do not have internal structure specification; (ii) do not have implementation; (iii) lack of attributes, states and associations; (iv) have operations only; (v) may have generalization relationships. Object can be viewed as an entity at a particular point in time with a specific value and as a holder of identity that has Object different values over time. Associations among objects are not shown. When you place an object tag in the design area, a lifeline is automatically drawn and attached to that object tag. Subsystem A subsystem groups use cases or packages together. A package is a mechanism for organizing elements into groups. It is used in the Use Case, Class, and Component diagrams. Packages may be nested within other packages. A Package package may contain both subordinate packages and ordinary model elements. The entire system description can be thought of as a single high-level subsystem package with everything else in it. Table 9-1 The Component Diagram Palette of VPUML Drawing a Component Diagram Creating a Component Method 1 – Creating a component using the diagram palette 1. To create a component in your component diagram, click on the Component button palette and click on the desire location. A component appears. 346 on the diagram Chapter 9 Component Diagram 2. Rename the component name, and then press Ctrl + Enter to set the component name. 3. The component name is set. Method 2 – Creating a component using the resource centric interface Diagram element that a component can be created from, using the resource centric interface is: z Component 1. Click on the component. The resource icons appear around the diagram element. 347 Chapter 9 Component Diagram 2. Press mouse button on the Component resource icon . A new component appears. 3. Drag the component to the desired location. The component is created. Creating a Component Instance Method 1 – Creating a Component Instance using the diagram palette To create a Component Instance in your component diagram, click on the Component Instance button on the diagram palette and click on the diagram window. A component instance appears. 1. Rename the newly created Component Instance name, and then press Ctrl + Enter to finish the operation. 2. The Component Instance name is set. 348 Chapter 9 Component Diagram Method 2 – Creating a Component Instance using the resource centric interface Diagram element that a component instance can be created from, using the resource centric interface is: z Component Instance 1. Click on an existing component instance. The resource icons appear around the diagram element. 2. Press on the Component Instance resource icon . A new component instance appears. 3.Drag the component instance to the desired location. Release the mouse button. The component instance is created. Creating an Interface Method 1 – Creating an Interface using the diagram palette 1.To create an Interface in your component diagram, click on the Interface icon and then click on the desired location on the diagram. A new interface is created. 349 on the diagram palette Chapter 9 Component Diagram 2. Rename the newly created interface name. Press Ctrl + Enter to finish the operation. 3. The Interface name is set. Method 2 – Creating an Interface using the resource centric interface Diagram elements that an interface can be created from, using the resource centric interface are: z Component z Component Instance 1. Press on the Interface resource icon . A new interface appears. 350 Chapter 9 Component Diagram 2.Drag the interface to the Component or Component Instance that you want the interface to be placed in. Release the mouse button. The Interface is created. 351 Chapter 10 Deployment Diagram Chapter 10 Deployment Diagram What is Deployment Diagram? Figure 10.1 Deployment Diagram Create a Deployment Diagram Method 1 – Creating the Deployment Diagram using the Menu Bar 1. Click on File in the menu bar. The file menu appears. 2. Click on New Diagram in the file menu. A cascading menu appears. 3. Click on New Deployment Diagram on the cascading menu. A new Deployment Diagram appears. 352 Chapter 10 Deployment Diagram Figure 10.2 Create deployment diagram by menu Method 2 – Creating the Deployment Diagram using the Toolbar 1.Click on the Create Deployment Diagram icon in the toolbar. A new Deployment Diagram appears. Figure 10.3 Create deployment diagram by toolbar 353 Chapter 10 Deployment Diagram Method 3 – Creating the Deployment Diagram using the Project Explorer 1. Right click on Deployment Diagram directory in the Project Explorer. A pop-up menu appears. 2. Click on Create Deployment Diagram. A new Deployment Diagram appears. Figure 10.4 Create deployment diagram by project explorer 354 Chapter 10 Deployment Diagram Figure 10.5 A new deployment diagram is created. 355 Chapter 10 Deployment Diagram The Deployment Diagram Palette Icon Notation Note Definition A note is used for comments additional explanation, specification and requirement in a diagram element or at a link in the diagram. It is not included in generated code. The contents of a note do not alter the meaning of the model to which it is attached. A note can contain any combination of text and graphics. It can also be used in defining a stereotype and entering a noted element. Constraint A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. Anchor Subsystem Package An anchor is used to line a diagram element and a note. A subsystem groups diagram elements together. A package is a mechanism for organizing elements into groups. It is used in the Use Case, Class, and Component diagrams. Packages may be nested within other packages. A package may contain both subordinate packages and ordinary model elements. The entire system description can be thought of as a single high-level subsystem package with everything else in it. Node A node is a physical element that exists at run time and represents a computational resource, generally having at least some memory and often processing capability. It is a run-time physical object and can be a Type or Instance. It can contain components and objects. Node Instance Association The link is used to associate one node to the other node. Component A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. Components represent all kinds of elements pertaining to the piecing together of software applications. They could be simple files or dynamically loaded libraries. Component Instance of Component Instance Interface An interface is a collection of operations that are used to specify a service of a class or a component. 356 Chapter 10 Deployment Diagram Each interface often specifies only a limited part of the behavior of an actual class. Characteristics of interface are: (i) do not have internal structure specification; (ii) do not have implementation; (iii) lack of attributes, states and associations; (iv) have operations only; (v) may have generalization relationships. Dependency Dependency is a semantic relationship between the two elements. It indicates that when a change occurs in one element, there may be a change necessary to the other element. A dependency link can include label and stereotype can be set. Object Object can be viewed as an entity at a particular point in time with a specific value and as a holder of identity that has different values over time. Associations among objects are not shown. When you place an object tag in the design area, a lifeline is automatically drawn and attached to that object tag Table 10-1 Deployment Diagram Palette Draw Deployment Diagram Create Node Method 1 – Creating a node using the deployment diagram palette 1.Click on the node button in the deployment diagram palette. Click on the desired location in the diagram. A new note appears. 357 Chapter 10 Deployment Diagram 2. Rename the newly added note. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a node using the resource centric interface 1. Click on an existing node in the diagram. Resource icons appear around the node. 358 Chapter 10 Deployment Diagram 2. Press on the resource icon with node ( , …). A new node appears. 3. Drag the node to the desired location. Release the mouse button. Î 4. Rename the newly added node. Press Ctrl + Enter to finish the operation. Î 359 Chapter 10 Deployment Diagram Create Component Method 1 – Creating a component using the deployment diagram palette 1.Click on the component button in the deployment diagram palette. Click on the desired location in the diagram. A new component appears. 2. Rename the newly added component. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating a component using the resource centric interface List of diagram elements that can create component with dependency using resource centric approach: z Component z Interface 1.Click on an existing diagram element listed above in the diagram. Resource icons appear around the diagram element. 360 Chapter 10 Deployment Diagram 2. Press on the resource icon with component ( , …). A new component appears. 3. Drag the component to the desired location. Release the mouse button. Î 4. Rename the newly added component. Press Ctrl + Enter to finish the operation. Î Create Component Instance Method 1 – Creating a component Instance using the deployment diagram palette 1.Click on the component instance button in the deployment diagram palette. Click on the place required in the diagram. A new component instance appears. 2. Rename the newly added component instance. Press Ctrl + Enter to finish the operation. Î 361 Chapter 10 Deployment Diagram Method 2 – Creating a component instance using the resource centric interface List of diagram elements that can create component instance with dependency using resource centric approach: z Component Instance z Interface 1.Click on an existing diagram element listed above in the diagram. Resource icons appear around the diagram element. 2. Press on a resource icon with component instance ( , …). A new component instance appears. 3. Drag the component instance to the desired location. Release the mouse button. Î 362 Chapter 10 Deployment Diagram 4. Rename the newly added component instance. Press Ctrl + Enter to finish the operation. Î Create Interface Method 1 – Creating an interface using the deployment diagram palette 1.Click on the interface button in the deployment diagram palette. Click on the desired location in the diagram. A new interface appears. 2. Rename the newly added interface. Press Ctrl + Enter to finish the operation. Î Method 2 – Creating an interface using the resource centric interface List of diagram elements that can create interface with dependency using resource centric approach: z Component z Component Instance 363 Chapter 10 Deployment Diagram 1.Click on an existing diagram element listed above in the diagram. Resource icons appear around the diagram element. 2. Press on the resource icon with interface ( , …). A new interface appears. 3. Drag the interface to the desired location. Release the mouse button. Î 4. Rename the newly added interface. Press Ctrl + Enter to finish the operation. Î 364 Chapter 10 Deployment Diagram Create Object 1.Click on the object button in the activity diagram palette. Click on the desired location in the diagram. A new object appears. 2. Rename the newly added object. Press Ctrl + Enter to finish the operation. Î Create Association Relationship Method 1 – Creating an association using the use case diagram palette An association relationship can be created between nodes. 1.Click on the association button in the use case diagram palette. Drag from the source actor or the target node. Î 365 Chapter 10 Deployment Diagram 2. Release the mouse button. A new association is created between the nodes. Method 2 – Creating an association using the resource centric interface An association can be created between notes using resource centric interface. 1. Click on an existing node in the diagram. Resource icons appear around the node. 366 Chapter 10 Deployment Diagram 2. Press on the association -> node . A new node appears. 3. Drag the new node to the target node. The target is selected. Î 4. Release the mouse button. The association is created between the nodes. Creating a Dependency Relationship Method 1 – Creating a dependency relationship using the class diagram palette A dependency relationship can be created between: z A component z A component Instance z An interface (Cannot be the source diagram element) 367 Chapter 10 Deployment Diagram 1.Click on the dependency button in the class diagram palette. Drag from the source diagram element to the target diagram element. Î 2. Release the mouse button. A new dependency relationship is created between the diagram elements. Method 2 – Creating a dependency relationship using the resource centric interface List of diagram elements that can create dependency relationship between them using resource centric interface : z A component z A component Instance z An interface 1.Click on an existing diagram element listed above in the diagram. Resource icons appear around the diagram element. 2.Press on a resource icon with dependency ( , , …). A new diagram element appears. (Note: the resource icon must be correspondent to the target diagram element) 368 Chapter 10 Deployment Diagram 3. Drag the new diagram element to the target diagram element. The target diagram element is selected. Î Release the mouse button. The dependency relationship is created between the diagram elements. 369 Chapter 11 Report Generator Chapter 11 Report Generator HTML Report Generating HTML Report 1. Click on Tools on the menu bar. The Tools menu appears. 370 Chapter 11 Report Generator 2. Click on Report on the Tools menu. A cascading menu appears. 3. Click on HTML… on the cascading menu. The Generate HTML dialog appears. 371 Chapter 11 Report Generator 4.Input the directory for generating the report in the File location text field. Or click on the beside the File location text field. The Open dialog appears. 5. Select the directory for generating report. Click on the OK button in the Open dialog. 372 button near Chapter 11 Report Generator 6. Check the Launch viewer check box to view the report after generation. 7.Check the check boxes in the tree of the Print Diagram frame to specific which diagrams will be used to generate the report. 373 Chapter 11 Report Generator 8.Check the Generate diagrams check box to generate the diagrams to images and add to the report. Click the Template combo box to select a template for the report. For example, select Use Case Diagram Report to generate a report with use case diagrams only. 9.Check the Graphics antialiasing check box and the Text antialiasing check box. 374 Chapter 11 Report Generator 10. Click on the Header/Footer tab to edit the header and footer of the report. 11. Check the Use header check box and Use footer check box. 375 Chapter 11 Report Generator 12. Click on the Alignment combo box to select the header alignment. The Preview frame will be update to show the format of the header and the footer. 13. Click on the Font name combo box to select the font of the header or footer. 376 Chapter 11 Report Generator 14. Click on the Font style combo box to select the style and click on the Font size combo box to select the size of the font. 377 Chapter 11 Report Generator 15. Click on the button beside the Font color label. The Font Color dialog appears. Select a color and click on the OK button in the dialog. 16. Click on the Document Info tab in the dialog. Input the title, author and keywords for the report. 378 Chapter 11 Report Generator 17. Click on the OK button in the dialog. The dialog will be close. The Generating HTML Document dialog appears to show the progress. 18. When the progress reaches to 100%, click on the Close button in the dialog. The dialog will be closed. 379 Chapter 11 Report Generator 19. The browser will be opened automatically with the report generated. Browsing HTML Report Generated 1.After the report is generated, open the report. The frame on the left hand side is a tree for browsing the diagram and the diagram details. 380 Chapter 11 Report Generator 2. Click on the tree to select a diagram. The frame on the right hand side will show the diagram. 3. Click on the view detail link to see the details of the diagram. 381 Chapter 11 Report Generator 4. The frame on the right hand side will show the diagram details. 5. Scroll down to see the diagram details. 382 Chapter 11 Report Generator 6. Click on the link under the diagram to see a diagram element details. 7. The following is the report for a class diagram. 383 Chapter 11 Report Generator 384 Chapter 11 Report Generator 8. The following is the report for a sequence diagram. 9. The following is the report for a collaboration diagram. 385 Chapter 11 Report Generator 10. The following is the report for a state diagram. 11. The following is the report for an activity diagram. 386 Chapter 11 Report Generator 12. The following is the report for a component diagram. 13. The following is the report for a component diagram. 387 Chapter 11 Report Generator 14. The following is the report for the problem statement having textual analysis performed. 388 Chapter 11 Report Generator 389 Chapter 11 Report Generator PDF Report Generating PDF Report 1. To generate a PDF report, click on Tools on the menu bar. The Tools menu appears. 2. Click on Report on the menu. A cascading menu appears. 390 Chapter 11 Report Generator 3. Click on PDF on the cascading menu. The Generate PDF dialog appears. 4.Input the file name for generating the report in the File location text field. Or click on the near beside the File location text field. The Open dialog appears. 391 button Chapter 11 Report Generator 5. Select the directory and the file name for generating report. Click on the OK button in the Open dialog. 6. Check the Launch viewer check box to view the report after generation. 392 Chapter 11 Report Generator 7.Check the check boxes in the tree of the Print Diagram frame to specific which diagrams will be used to generate the report. 8.Check the Generate diagrams check box to generate the diagrams to images and add to the report. Click the Template combo box to select a template for the report. For example, select Use Case Diagram Report to generate a report with use case diagrams only. 393 Chapter 11 Report Generator 9. Click on the Diagram quality combo box to select the quality of the diagrams in the report. 10. Check the Graphics antialiasing check box and the Text antialiasing check box. 394 Chapter 11 Report Generator 11. Click on the Page tab in the dialog to edit the page layout of report. 12. Choose the page orientation of the report. 395 Chapter 11 Report Generator 13. Click on the Page size combo box to select the page size. 14. Input the margin values to adjust the margins. 396 Chapter 11 Report Generator 15. Click on the Header/Footer tab to edit the header and footer of the report. 16. Check the Use header check box and Use footer check box. 397 Chapter 11 Report Generator 17. Click on the Header style combo box to select one of the styles. 18. Click on the Alignment combo box to select the header alignment. The Preview frame will be update to show the format of the header and the footer. 398 Chapter 11 Report Generator 19. Click on the Footer style combo box to select one of the styles. 20. Input the footer text in the Footer Text text field. 399 Chapter 11 Report Generator 21. Click on the Document Info tab in the dialog. Input the title, subject, author, keywords, info header and info header content for the report. Check the Allow modify check box to allow the PDF report to be modified. 22. Click on the Generate button in the dialog to generate the report. 400 Chapter 11 Report Generator 23. The Generating PDF Document dialog appears to show the progress. 24. When the progress reaches 100%, click on the Close button in the dialog. The dialog will be close. 401 Chapter 11 Report Generator 25. The PDF report document will be opened automatically. Browsing PDF Report Generated 1.After the report is generated, open the report. The frame on the left hand side is a list for browsing the diagram and the diagram details. 402 Chapter 11 Report Generator 2.Click on the list to select a diagram. The frame on the right hand side will show the diagram and the diagram details. The following is the report for a use case diagram. 403 Chapter 11 Report Generator 3. The following is the report for a class diagram 404 Chapter 11 Report Generator 4. The following is the report for a sequence diagram. 5. The following is the report for a collaboration diagram. 405 Chapter 11 Report Generator 6. The following is the report for a state diagram. 7. The following is the report for a component diagram. 406 Chapter 11 Report Generator 8. The following is the report for the problem statement having textual analysis performed. 407 Chapter 12 Code Generation Chapter 12 Code Generation Java Code Generation Syntax Checking for a Project VPUML can check the UML syntax for java code generation. It checks the syntax for a project and display warning messages and error messages in the Log Pane. The followings are situations that the Log Pane will display warning messages or error messages: z A class inherits from multiple classes. z A class is set to be final and interface at the same time. z A class realizes another class or another interface. z An interface extends a class. 1.To perform syntax checking for the current project, click on Code on the menu bar. The Code menu appears. 2. Click on Java on the menu. A cascading menu appears. 408 Chapter 12 Code Generation 3.Click Syntax Check in the cascading menu. The Check model with Java syntax dialog appears to show the progress. (If the Code Engine Set Configuration dialog appears, click on the Code Generation tab and input the working directory in the Working Directory text field.) 409 Chapter 12 Code Generation 4.When the progress reaches to 100%, click on the Close button in the dialog. The warning messages and error message is shown in the Log Pane. Checking Syntax for a Class VPUML can check the UML syntax for java code generation for a signal class. 1. Click on an existing class on the class diagram. A popup menu appears. 410 Chapter 12 Code Generation 2.Click on the Code generation syntax check button on the menu. The Check model with Java syntax dialog appears to show the progress. 3. When the progress reaches to 100%, click on the Close button in the dialog. 411 Chapter 12 Code Generation 4. Adjust the height of the Log Pane (if needed) to see the warning messages and error messages. Generating Code for a Project VPUML can generate Java code for the class models in a project. 412 Chapter 12 Code Generation 1. Click on Code on the menu bar. The Code menu appears. 2. Click Java in the menu. A cascading menu appears. 413 Chapter 12 Code Generation 3. Click on Generate on the cascading menu. The Java Code Generate Options dialog appears. 4. Click on the Default attribute type combo box. A list of attribute type appears. 414 Chapter 12 Code Generation 5. Select one of the attribute type in the list. 6.To add Java documentation to the header in class files, input the documentation in the Header description text pane. 415 Chapter 12 Code Generation 7.Check the Generate JavaDoc check box. The Preview text pane is updated. The JavaDoc is added to the sample source. 8.To generate import statement in the source, check the Automatic import statement generation checkbox. The Preview text pane is updated. The import statements are added to the sample source. 416 Chapter 12 Code Generation 9.To set the brace style of the source code, click on the combo boxes in the Braces frame. A list of style appears. 10. Select one of the brace style. The source code in the Preview text pane is updated. 417 Chapter 12 Code Generation 11. Click on the Code Generation tab. 12. Input the working directory in the Working directory text field for code generation. 418 Chapter 12 Code Generation 13. Set the other code generation preferences. 14. Check the check box of the project in the Available Classes for Code Engineering frame. All the check boxes of the class models are checked. 419 Chapter 12 Code Generation 15. Click on the button to add the class models in the Selected Classes for Code Engineering frame for code generation. 16. Click on the OK button in the dialog to close it. The Code generation dialog appears to show the progress. 420 Chapter 12 Code Generation 17. When the progress reaches 100%, click on the Close button in the dialog to close it. The Code Preview dialog appears. 18. A list of classes is shown in the Generated Classes tree. Click on one of the class in the tree. The Java source generated is shown. 421 Chapter 12 Code Generation 19. Click on the Close button in the Code Preview dialog to close it. 422 Chapter 12 Code Generation Generating Code for a Class 1.To generate Java code for an existing class in the class diagram, right click on the class. A popup menu appears. 2. Click on Generate code on the popup menu. The Code Generation Options dialog appears. 423 Chapter 12 Code Generation 3. Set the preferences for code generation. Click on the OK button in the dialog to close it. 424 Chapter 12 Code Generation 4. The Code generation dialog appears to show the progress. 5.When the progress reaches to 100%, the source code is generated for the class. Click on the Close button in the dialog to close it. 425 Chapter 12 Code Generation Real-Time Code Generation 1. Open an existing project and open a class diagram in the project. 2. Right click on the class diagram. A popup menu appears. 426 Chapter 12 Code Generation 3. Check the Show Code Pane check box in the popup menu. 4. The Code Pane is shown. 427 Chapter 12 Code Generation 5. Right click on the class diagram. A popup menu appears. 6. Check the Real Time Code Generation check box. 428 Chapter 12 Code Generation 7.Click an existing class in the class diagram. The code is generated for the class and shown in the Code Pane. 429 Chapter 12 Code Generation 8. Adjust the Code Pane (if needed) to see the generated source code. 430 Chapter 13 Code Reverse Engineering Chapter 13 Code Reverse Engineering Java Code Reverse Engineering Real-Time Reverse Engineering for a Class VPUML can reverse the code from the Code Pane to update a class in a class diagram. 1. Open a class diagram in the Project Explorer. The class diagram is shown. 431 Chapter 13 Code Reverse Engineering 2. Right click on the diagram. A popup menu appears. 3. Click on Show Code Pane in the popup menu. 432 Chapter 13 Code Reverse Engineering 4. The Code Pane is shown. Click on the class diagram again. A popup menu appears. 5. Click on Real Time Code Generation on the popup menu. 433 Chapter 13 Code Reverse Engineering 6. Click on a class in the class diagram. The code for the class is generated. 7. Add an attribute in the Code Pane. The class in the class diagram will be updated with the attribute added. 434 Chapter 13 Code Reverse Engineering 8.Add an operation in the Code Pane. The class in the class diagram will be updated with the operation added. 435 Chapter 13 Code Reverse Engineering Reverse Engineering from Java Files VPUML can reverse Java files to class models. The class models can then be added to class diagram. 1.Click on Code in the menu bar. The Code menu appears. 436 Chapter 13 Code Reverse Engineering 2.Click on Java on the menu. A cascading menu appears. 3.Click Option in the cascading menu. The Code Engine Set Configuration dialog appears. Click on the Code Generation tab in the dialog. 437 Chapter 13 Code Reverse Engineering 4.Input the working directory in the Working Directory text field. 5.Or click on the button. The Open dialog appears. 438 Chapter 13 Code Reverse Engineering 6.Select a directory in the dialog. The working directory is set. 7.Click on the Code Reverse Engineering tab in the dialog. The Source Paths and Classpaths are updated. (The source paths are the path containing the Java files to be reserved. The class paths are the path containing the class files to be referenced. To add more source path and class path, click on the Add… button.) 439 Chapter 13 Code Reverse Engineering 8.Check the Lock for classes in classpath for reserving the class name fully qualified. (e.g. String => java.lang.String). Check the Merge mode and code for updating the already existing class in class diagram from code. 9.Click on the OK button in the dialog. The dialog is closed. 440 Chapter 13 Code Reverse Engineering 10. Click Code in the menu bar. The Code menu appears. 11. Click Java in the menu. A cascading menu appears. 441 Chapter 13 Code Reverse Engineering 12. Click on Reverse on the cascading menu. The Code reserve engineering dialog appears to show the progress. The Java files in the source path will be reserved to class models. 13. When the progress reaches 100%, click on Close in the dialog. The class models are added in the Model Tree. 442 Chapter 13 Code Reverse Engineering 14. Click the refresh button to refresh the Model Tree. 15. Right click on the root directory in the Tree Model. A popup menu appears. 443 Chapter 13 Code Reverse Engineering 16. Click on Collapse All to collapse the tree to see all the class models generated. Adding the reversed class models to class diagrams. 1.Click on File on the menu bar. The File menu appears. 444 Chapter 13 Code Reverse Engineering 2.Click on New Diagram in the menu. A cascading menu appears. 3.Click on New Class Diagram / New Class Diagram with Real Time Code Generation in the cascading menu. 445 Chapter 13 Code Reverse Engineering 4.Drag the class models from the Model Tree to the new class diagram. The class models reserved from the Java files will be added to the class diagram. 446 Chapter 13 Code Reverse Engineering Updating Class Models from Java files 1.To update a class model from the Java file, right click on the class. A popup menu appears. 447 Chapter 13 Code Reverse Engineering 2.Click on Reverse code on the popup menu. The Code Reserve Engineering Options dialog appears. 3.Click on the OK button in the dialog. The Code reverse engineering dialog appears to show the progress. 448 Chapter 13 Code Reverse Engineering 4.When the progress reaches 100%, click on Close in the dialog. The class model and the class in the class diagram will be updated. 449 Chapter 14 Print Preview Window Chapter 14 Print Preview Window Print Preview Window Figure 14.1 Visual Paradigm for UML with IDE 450 Chapter 14 Print Preview Window 1. Click on File on the main menu. Click on Print... under the file menu. Alternatively, click on the Print icon on the toolbar. The Print Preview Window appears. Figure 14.2 The Print Preview Window The Print Preview Toolbar Icon Notation Print Setup Page Adjust Margin Zoom Pages Paper Base Layout Paper Place Style Definition Print the selected diagrams. The Print dialog box appears. Set the page properties for printing the diagrams. The Setup Page appears. Adjust the margins of the pages. The margins can be edited by inputting the value in the text boxes in the print preview area or dragging the margin lines on the page. Zoom in/out the diagrams. Set the paper shown horizontally or vertically. By default, the setting is “Horizontal, then Vertical” – the pages will be shown horizontally 451 Chapter 14 Print Preview Window “Vertical, then Horizontal” – the pages will be shown vertically. Fit to Ratio Set the diagram size to fit into specified ratio. Set the diagram size to fix into page(s). Fit to Pages Overlapping Show Image Clip Mark To adjust the percentage of the margin of the pages to be duplicated for printing. Show the clip marks that surround the diagrams in pages. Edit the header/footer of the pages. The print preview area appears with Multi Page Options. You can insert the auto text below: - Set Front - Insert Page Number Edit Header/Footer - Insert Number of Pages - Insert Date - Insert Time - Insert File Name - Insert Diagram Name Multi Page Mode Close Set number of pages and the page style to be printed in a sheet. Close the print preview window and switch back to VPUML. Table 14-1 The Print Preview Toolbar 452 Chapter 14 Print Preview Window Printing Printing Diagrams 1.To print diagrams, check the check boxes of the desired diagrams in the Project Explorer. The print preview area will show the selected diagram. 453 Chapter 14 Print Preview Window 2. Click on the Print button on the toolbar. The Print dialog box appears. 3. Click OK in the Print dialog box. The diagrams will be printed. Print Settings 1. Click on the Print button on the toolbar. The Print dialog box appears. 2. Set the pages and the number of copies to be printed. Click OK to print the diagrams. 454 Chapter 14 Print Preview Window Page Settings 1. Click on the Setup Page button on the toolbar. The Page Setup dialog box appears. 2. Click on the Size pull-down box to select the paper type. The page view will be updated. 455 Chapter 14 Print Preview Window 3. Click on the Source combo box to select the paper source. 4. Click on either the Portrait/Landscape Orientation. The page view will be updated. 456 Chapter 14 Print Preview Window 5.To set the Margins of the paper, click on the Left, Right, Top or Button text box and input the corresponding margin sizes. The page view will be updated. 6. Click on OK to confirm the settings or click on Cancel to undo the settings. Adjusting the Paper Margins 457 Chapter 14 Print Preview Window 1.Click on the Adjust Margin button on the toolbar. The preview area shows a blank paper and the margins of the paper. 2.Edit the margins with the text boxes – Header, Footer, Top, Bottom, Left and Right. Alternatively, you can drag the margin lines on the paper to adjust the margins. 458 Chapter 14 Print Preview Window 3.Click on the Adjust Margin button on the toolbar again to preview the diagram. The margins will be updated. Zooming 459 Chapter 14 Print Preview Window 1.Click on the Zoom Pages pull-down box to select the zoom percentage. The preview area will be updated. 460 Chapter 14 Print Preview Window Setting the Diagram Base Layout 1.To set the diagram base layout in the preview area, Click on the Diagram Base Layout button the toolbar. The layout is changed. 461 on Chapter 14 Print Preview Window Set Paper Place Style By Default, the place style is “Horizontal, then Vertical”. The place style can be set to “Vertical, then horizontal”. 1.Click on the Paper Place Style button on the toolbar to set the place style. The style is now set to “Vertical, then Horizontal”. 462 Chapter 14 Print Preview Window Fit to Ratio 1. Click on the Fit to pull-down box to select the Ratio for fitting the diagram with ratio. 463 Chapter 14 Print Preview Window 2. Input the ratio, for example 50%, in the Ratio text box. The diagrams in the preview area will be updated. Fit to Pages 464 Chapter 14 Print Preview Window 1. Click on the Fit to pull-down box to select Pages for fitting the diagram with pages. 2. Click on the Fit to Column and Row button on the toolbar. The page layout selector appears. 465 Chapter 14 Print Preview Window 3.Move the mouse cursor to select rows and columns. Then click on the selected cell. The diagram will be cut into (row x column) pages. Setting the Overlapping of a Diagram 466 Chapter 14 Print Preview Window 1.Click on the Overlapping text box to input the over lapping percentage, 20%. Then press Enter. The pages will be updated in the preview area. The diagram image near the margin will be duplicated. Showing the Image Clip Mark 467 Chapter 14 Print Preview Window 1.Click on the Show Image Clip Mark button on the toolbar. The diagrams will be surrounded by the clip mark in the pages. Editing the Header/Footer of the Pages 468 Chapter 14 Print Preview Window 1. Click on the Edit Header/Footer button on the toolbar. The Header/Footer editor appears. 2. Input the header and footer for the pages. 469 Chapter 14 Print Preview Window 3.Click on the Edit Header/Footer button again. The Header/Footer editor is closed. The header and footer text are added to the pages. Multi Page Mode 470 Chapter 14 Print Preview Window 1. Press Ctrl and select more diagrams. 2. Click on the Multi Page Mode button on the toolbar. The preview area with Multi Page Options appears. 471 Chapter 14 Print Preview Window 2. Click on the page layout selector on the toolbar. Select the rows and columns. 3.Then click on the selected cell. The preview area will be updated. A sheet now contains (rows x columns) pages. 472 Chapter 14 Print Preview Window 4. Click on the Page Style button to change the page style. The print preview area will be updated. 5. Click on the Multi Page Mode button again to exit the multi page mode. 473 Chapter 14 Print Preview Window Exit Print Preview Window 1. Click on the Close button to close the Print Preview Window and switch back to the VPUML. 474