0 TGraph 27 TUMLClass Square abstract 0 397 22 542 127 FALSE FALSE 2 TUMLAttribute name 0 string 0 TUMLAttribute position on board 0 int 0 1 TUMLOperation runActivity abstract 0 0 1 1 TUMLClass Property abstract 0 172 2 387 382 FALSE FALSE 8 TUMLAttribute price 0 int 0 TUMLAttribute mortgage value 0 int 0 TUMLAttribute owned 0 bool 3 TUMLAttribute mortgaged 0 bool 3 TUMLAttribute ownMonopoly 0 bool 3 TUMLAttribute currentRent 0 int 3 TUMLAttribute numHouses 0 int 1 TUMLAttribute Hotel 0 boolean 1 12 TUMLOperation buyProperty 0 bool 0 1 TUMLOperation mortgageProperty 0 0 1 TUMLOperation auctionProperty 0 0 1 TUMLOperation isOwned 0 bool 0 1 TUMLOperation isMortgaged 0 bool 0 1 TUMLOperation isMonopolyOwned 0 bool 0 1 TUMLOperation calculateRent abstract 0 int 0 1 TUMLOperation unmortgageProperty 0 0 1 TUMLOperation runActivity 1 calls calculateRent, and then calls chargeRent. 0 1 TUMLOperation chargeRent 0 0 1 TUMLOperation changeEnh 0 2 TUMLArgument houses 0 int TUMLArgument hotel 0 int 1 TUMLOperation billPlayer 0 0 1 0 TUMLClass ActionSquare abstract 0 622 137 767 212 FALSE FALSE 0 1 TUMLOperation runActivity abstract 0 0 1 0 TUMLClass DrawCardSquare 0 972 267 1082 327 FALSE FALSE 0 1 TUMLOperation runActivity 0 0 1 1 TUMLClass TaxSquare 0 622 262 792 337 FALSE FALSE 0 2 TUMLOperation runActivity 0 0 1 TUMLOperation getTaxAmt abstract 0 int 0 1 0 TUMLClass JustVisitingSquare 0 972 17 1092 77 FALSE FALSE 0 1 TUMLOperation runActivity 0 0 1 0 TUMLClass RailroadSquare 0 172 427 302 517 FALSE FALSE 1 TUMLAttribute numOfRRs 0 int 3 2 TUMLOperation getNumOfRRs 0 int 0 1 TUMLOperation calculateRent 0 int 0 1 0 TUMLClass PropertySquare 0 22 427 152 567 FALSE FALSE 2 TUMLAttribute levelOfEnh 0 int 3 TUMLAttribute ownMonopoly 0 bool 3 4 TUMLOperation getLevelOfEnh 0 int 0 1 TUMLOperation addLevel 0 bool 0 1 TUMLOperation removeLevel 0 bool 0 1 TUMLOperation calculateRent 0 int 0 1 1 TUMLClass UtilitySquare 0 327 442 452 517 FALSE FALSE 1 TUMLAttribute ownMonopoly 0 bool 3 1 TUMLOperation calculateRent 0 int 0 1 1 TUMLClass Bank 0 742 537 912 677 FALSE FALSE 2 TUMLAttribute hotelsAvailable 0 int 3 TUMLAttribute housesAvailable 0 int 3 4 TUMLOperation buyHotels 0 bool 1 TUMLArgument num 0 int 1 TUMLOperation buyHouses 0 bool 1 TUMLArgument num 0 int 1 TUMLOperation sellHotels 0 bool 1 TUMLArgument num 0 int 1 TUMLOperation sellHouses 0 bool 1 TUMLArgument num 0 int 1 0 TUMLClass Player 0 962 337 1297 877 FALSE FALSE 9 TUMLAttribute cashOnHand 0 int 3 TUMLAttribute totalWorth 0 int 3 TUMLAttribute token 0 int 3 TUMLAttribute position 0 Position 3 TUMLAttribute bankrupt 0 bool 3 TUMLAttribute turn 0 int 3 TUMLAttribute propertiesOwned 0 Property[] 3 TUMLAttribute inJail 0 int 3 TUMLAttribute hasJailFreeCard 0 int 3 22 TUMLOperation getCashOnHand 0 int 0 1 TUMLOperation getTotalWorth 0 int 0 1 TUMLOperation getToken 0 int 0 1 TUMLOperation getPosition 0 Position 0 1 TUMLOperation isBankrupt 0 bool 0 1 TUMLOperation getTurn 0 int 0 1 TUMLOperation checkOwnership 0 bool 1 TUMLArgument target 0 Property 3 TUMLOperation changePosition 0 1 TUMLArgument positions 0 int 1 TUMLOperation chargePlayer 0 0 1 TUMLOperation payPlayer 0 0 1 TUMLOperation calcTotalWorth 0 0 3 TUMLOperation checkForPropertyMonopoly 0 0 3 TUMLOperation addPropertyToHoldings 0 0 1 TUMLOperation checkInJail 0 int 0 1 TUMLOperation hasJailFreeCard 0 bool 0 1 TUMLOperation Player constructor 0 0 1 TUMLOperation endTurn 0 0 1 TUMLOperation meRollDice 0 0 1 TUMLOperation requestEnh 0 2 TUMLArgument houses 0 int TUMLArgument hotels 0 int 1 TUMLOperation chgPropertyEnh 0 1 TUMLArgument add 0 boolean 1 TUMLOperation initiateTransaction 0 0 1 TUMLOperation initiateMortgage 0 2 TUMLArgument property 0 Property TUMLArgument mortgage 0 boolean 1 1 TUMLClass GoSquare 0 822 272 932 332 FALSE FALSE 0 1 TUMLOperation runActivity 1 add $200 to player's cashOnHand. 0 1 1 TUMLClass Position 0 517 552 642 677 FALSE FALSE 1 TUMLAttribute pos 0 int 1 4 TUMLOperation incrementPos 0 0 1 TUMLOperation changePos 0 0 1 TUMLOperation changePosToJail 0 0 1 TUMLOperation getPos 0 Position 0 1 1 TUMLClass GoToJailSquare 0 487 267 597 327 FALSE FALSE 0 1 TUMLOperation runActivity 0 0 1 1 TUMLClass JailSquare 0 807 162 917 222 FALSE FALSE 0 1 TUMLOperation runActivity 0 0 1 1 TUMLClass FreeParkingSquare 0 947 162 1067 222 FALSE FALSE 0 1 TUMLOperation runActivity 0 0 1 1 TUMLClass Control 0 197 542 397 887 FALSE FALSE 6 TUMLAttribute currentTurn 0 Turn 3 TUMLAttribute numOfPlayers 0 int 3 TUMLAttribute consecutiveDoubles 0 int 3 TUMLAttribute die1 0 int 3 TUMLAttribute die2 0 int 3 TUMLAttribute roll 0 int 3 13 TUMLOperation gameOver 0 bool 0 1 TUMLOperation nextTurn 0 0 1 TUMLOperation getNumOfPlayers 0 int 0 1 TUMLOperation rollDice 0 int 0 1 TUMLOperation movePlayerToken 0 1 TUMLArgument positions 0 int 1 TUMLOperation handleLandingOnProperty 0 0 1 TUMLOperation collectRent 0 0 1 TUMLOperation handlePropertyEnh 0 0 1 TUMLOperation buyPropertyEnh 0 0 3 TUMLOperation sellPropertyEnh 0 0 3 TUMLOperation getRoll 0 int 0 1 TUMLOperation incDouble 0 0 1 TUMLOperation sendToJail 0 1 TUMLArgument player 0 Player 1 1 TUMLClass Turn 0 37 637 147 712 FALSE FALSE 1 TUMLAttribute turn 0 int 3 1 TUMLOperation incrementTurn 0 0 1 1 TUMLNote 0 527 447 927 522 4 Calculate rent needs to check with its Player's holdings to see if the Player has a monopoly on that color group/1,2,3 or 4 RRs/1 or 2 utilities, as well as house/hotel improvements on color group properties. TUMLClass CardDeck 0 1142 12 1252 117 FALSE FALSE 2 TUMLAttribute cardIndex 0 int 3 TUMLAttribute card 0 int[] 1 2 TUMLOperation drawCard 0 int 0 1 TUMLOperation shuffleDeck 0 0 1 1 TUMLClass Card 0 1142 162 1252 267 FALSE FALSE 2 TUMLAttribute contents 0 string 3 TUMLAttribute action 0 3 2 TUMLOperation displayCard 0 0 1 TUMLOperation performAction 0 0 1 1 TUMLClass Transaction 0 567 722 777 1067 FALSE FALSE 7 TUMLAttribute sourceProperties 0 Property[] 3 TUMLAttribute sourceCash 0 int 3 TUMLAttribute sourceJailCard 0 int 3 TUMLAttribute targetProperties 0 Property[] 3 TUMLAttribute targetCash 0 int 3 TUMLAttribute targetJailCard 0 int 3 TUMLAttribute targetPlayer 0 Player 3 12 TUMLOperation manageTransaction 0 0 1 TUMLOperation selectTargetPlayer 0 0 3 TUMLOperation selectProperties 0 1 TUMLArgument player 0 Player 3 TUMLOperation selectCash 0 1 TUMLArgument player 0 Player 3 TUMLOperation selectJailFreeCard 0 1 TUMLArgument player 0 Player 3 TUMLOperation validateTransaction 0 bool 0 1 TUMLOperation acceptTransaction 0 bool 0 1 TUMLOperation checkMortgages 0 bool 0 1 TUMLOperation handleMortgages 0 0 1 TUMLOperation processTransaction 0 bool 0 1 TUMLOperation canMortgage 0 boolean 0 1 TUMLOperation canUnMortgage 0 boolean 0 1 1 TUMLNote 0 2 197 167 287 5 runActivity for a Property: { calculateRent() chargeRent() } TUMLClass IncomeTax 0 727 357 882 432 FALSE FALSE 1 TUMLAttribute taxAmtDefault 0 int 200 3 1 TUMLOperation getTaxAmt 0 int 0 1 1 TUMLClass LuxuryTax 0 537 357 647 432 FALSE FALSE 1 TUMLAttribute taxAmt 0 int 75 3 1 TUMLOperation getTaxAmt 0 0 1 1 TUMLNote 0 547 22 957 62 2 JustVisiting, FreeParking, and JailSquare implement runActivity as an empty function. There is no action performed on these. TUMLNote 0 2 2 127 122 7 Monopoli$t: Class Diagram (original Monopoly terminology) CJ Janneck David Servas 30 TUMLGeneralization 0 1 7 4 282 382 282 412 77 412 77 427 TUMLGeneralization 0 1 6 2 282 382 282 427 TUMLGeneralization 0 1 8 4 282 382 282 412 392 412 392 442 TUMLGeneralization 0 2 3 4 702 212 702 252 1037 252 1037 267 TUMLGeneralization 0 2 4 2 702 212 702 262 TUMLGeneralization 0 0 1 3 467 127 467 152 387 152 TUMLGeneralization 0 0 2 3 467 127 467 177 622 177 TUMLGeneralization 0 2 13 4 702 212 702 252 542 252 542 267 TUMLGeneralization 0 0 5 3 542 112 1012 112 1012 77 TUMLGeneralization 0 0 15 3 542 112 1012 112 1012 162 TUMLGeneralization 0 0 14 3 542 112 857 112 857 162 TUMLGeneralization 0 2 11 4 702 212 702 252 877 252 877 272 TUMLAssociation 0 10 1 4 962 437 467 437 467 272 387 272 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 9 16 3 842 677 842 697 397 697 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 9 10 2 912 612 962 612 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 9 1 5 842 677 842 697 467 697 467 272 387 272 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 16 1 4 397 697 467 697 467 272 387 272 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLGeneralization 0 19 20 2 1197 117 1197 162 TUMLAssociation 0 19 3 4 1142 67 1097 67 1097 297 1082 297 TUMLAssociationEnd 0 0 0 2 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 20 3 4 1142 217 1127 217 1127 307 1082 307 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 21 16 2 567 802 397 802 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 9 21 3 842 677 842 1047 777 1047 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 10 21 4 962 662 932 662 932 1047 777 1047 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 16 12 2 397 652 517 652 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 17 16 2 147 672 197 672 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 1 21 4 387 272 467 272 467 822 567 822 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLGeneralization 0 4 23 3 692 337 692 397 727 397 TUMLGeneralization 0 4 24 3 692 337 692 397 647 397 TUMLAssociation 0 10 23 2 962 407 882 407 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE TUMLAssociation 0 12 13 3 517 637 502 637 502 327 TUMLAssociationEnd 0 0 0 TRUE TUMLAssociationEnd 0 0 0 TRUE