Texts: Use this task list to help you complete Question 1:
1. Display attribute visibility
2. Set all attributes to private visibility
3. Display constraints
4. Display data types for attributes
5. Specify data types for all attributes
6. Specify constraints for all attributes
7. Based on the 4 sequence diagrams, add operations to classes
8. For each operation, specify parameters and return types
9. Turn off the display for Operation Parameter Direction Kind
10. For the 3 entity classes (not the controllers) add constructors
11. Specify parameters for the constructors by analyzing the constraints
12. For the 3 entity classes (not the controllers) add getter operations
13. Specify the return values for the getters
14. For the 3 entity classes (not the controllers) add setter operations where appropriate (note – if an attribute is immutable, it will NOT have a setter)
15. Set the visibility for the setters in Account and Transaction classes to "private" (leave the setters in Customer class public – if a Customer changes their name, we want other classes in the Model to have access to them)
16. Add the stereotype "control" for the Controller classes
17. Add the stereotype "entity" for the Entity classes
18. Display Class Stereotypes
As you can see, the process of fully specifying a design class involves plenty of analysis and attention to detail.
HINT – once you have gone through all the sequence diagrams to add operations, your class diagram should have 2 operations in the Customer Manager and 4 operations in the Account Manager. There will be many operations/getters/setters in the Entity classes.
pkgClass Model
Customer
CustomerManager
customers
number
firstName
lastName
O..*
myAccounts
Account
AccountManager
accounts
accountNumber
balance
type
O..*
0.
ledger
Transaction
transactionID
type
amount
date