/ dot-dot dot Title:TThier/Languages/uml/demo12 Author: Dan Bikle This page contains some notes about Object Oriented Design, Object Oriented Analysis, UML and some stub Java classes generated with the help of Poseidon which is a tool sold by http://gentleware.com. This page continues the discussion started here: ../demo11 ../demo11/demo11.png After I created the above model I decided to enhance the model so it was more inherently consistent. The above model relies too much on the software to maintain data consistency. For example, the above model does not enforce this business rule: If an AccountHolder has an ATMcard, then the AccountHolder must be listed in the AccountHolderBankList. So, if we want the above business rule to be enforced, we must rely on software to enforce the rule. The model below enforces the rule inherently. This is true because an ATMcard depends on an appropriate entry in the AccountHolderBankList: demo12.png Notice also that Account also depends on an appropriate entry in the AccountHolderBankList. One way to think about this model is to put your self in the shoes of a Customer Service representative of GiantEnormousBigbank.com which is a bank which has acquired over 100 small banks in the last month. You get a call from a customer. He gives you some information about his relationship with GiantEnormousBigbank.com: accountHolderID = 123456 BankID = 22 (The ID of his old bank which got acquired) Your Customer Service application shows you a 2D grid: bankIDs | | | | | x ---------- accountHolderID = 123456, BankID = 22 | | | | -------------------------------------------------------accountHolderIDs Once you find the customer on the above grid, you click on the x and the application drills you down into information about that customer. You can then see what ATMcards he has and what accounts he has. What's nice, is if he also has an account with BankID = 34, you could easily drill down and get that information also. So, not only does the model inherently provide data consistency, it also lends itself to an obvious scheme for navigating through data. |