object oriented design
play

Object Oriented Design Theres more? zombie[3] zombie[1] zombie[4] - PowerPoint PPT Presentation

Object Oriented Design Theres more? zombie[3] zombie[1] zombie[4] zombie[5] zombie[2] zombie[0] Fundamentals of Computer Science Outline Object Oriented Design Identify the Classes Identify what Information each Class


  1. Object Oriented Design There’s more…? zombie[3] zombie[1] zombie[4] zombie[5] zombie[2] zombie[0] Fundamentals of Computer Science

  2. Outline  Object Oriented Design  Identify the Classes  Identify what Information each Class Needs  Identify what each Class Needs to Do

  3. Software Development Life Cycle 1. Understand the Problem = Requirements Analysis 2. Work out the Logic = Design 3. Convert it to Code = Implementation 4. Test/Debug 5. Maintenance Today we will talk about requirements analysis and object oriented design. 3

  4. What are the Nouns?  You have been hired to automate bank operations for a local credit union. They have told you that their business operates as follows:  Customers can open accounts. They can make deposits and withdrawals and can close accounts also. On some accounts interest needs to be added, and sometimes fees are deducted.  All employees can help customers with deposits and withdrawals. Only some employees are authorized to open and close accounts. 4

  5. From Last Year…

  6. UML Diagram Class Name Product Person -Name -Type -SSN -Interest Applied Attributes/State -Address -Fees -Phone -Name of Account -Email -Minimum Balance -Preferred method of contact -Overdraft Fee Methods/Behavior -Stipulations for Withdrawal -Max Amount -Num Withdrawals Allowed Interest -Balance -End8 -Rate Inheritance (is-a) -Calculation Method -Loan or Savings * Employee Customer -Date -Account -Open Accounts? -Debit Card -Num of Customers -Accounts LIst -Hours of Operation -Account Length (Time) -Time Active -Account Balances -End3 Account -End4 -End7 -Hire Date -Ranking -Balance -Position -Loan? -Transaction History 1 -Salary -Credit Score -End5 * 1 -Authorized Parties / Levels -Direct Deposit -Type (Person/Corp.) -Open/Closed -Password/PIN -Date Opened 1 -Bill Autopay? -Who Opened Fee -Acct Number -End6 -Type +Assign Acct Number() -Account -Amount * -Date Composition (has-a) 1 -End1 Transaction -Date * -Type (Auto/Cash/Check) -Amount -End2 -Account Deposit Withdrawal -Origin -Unauthorized Attempts -Approve or Not

  7. Simplifying the Design – Classes and Attributes  Look for repetition of data  Try to have each piece of data in only one place  Look for “modifiers”  These might indicate the attribute should be in a different class  e.g. Under Customer, we have “Account Length (Time)” and “Account Balance”  Since they both reference account, they should probably be in the Account class  Walk through each attribute and see if it makes sense  Does it really applies to that class

  8. Modified UML Person Product -End7 -Type -Name -SSN -Interest Applied -Address -Fees Interest 1 -End8 -Phone -Name of Account -Rate -Email -Minimum Balance -Calculation Method -Preferred method of contact -Overdraft Fee * -End5 -Stipulations for Withdrawal -Max Amount -Num Withdrawals Allowed 1 Fee -End6 -Type -Amount * Employee Customer -Open Accounts? -Num of Customers -Debit Card -Hours of Operation -Accounts List -Time Active -Ranking -End3 Account -End4 Removed account data -Hire Date -Loan? -Balance -Position -Credit Score Made interest and fees part of product -Transaction History 1 -Salary -Type (Person/Corp.) * -Authorized Parties / Levels -Direct Deposit -Password/PIN -Open/Closed -Bill Autopay? -Date Opened -Who Opened -Acct Number +Assign Acct Number() 1 -End1 Transaction -Date * -Type (Auto/Cash/Check) -Amount -Account -End2 -Origin -Approve or Not Removed deposit and withdrawal

  9. Add Behaviors - What are the Verbs?  You have been hired to automate bank operations for a local credit union. They have told you that their business operates as follows:  Customers can open accounts. They can make deposits and withdrawals and can close accounts also. On some accounts interest needs to be added, and sometimes fees are deducted.  All employees can help customers with deposits and withdrawals. Only some employees are authorized to open and close accounts. 9

  10. UML with Behaviors Person Product -Name -Type -End7 -SSN -Interest Applied -Address -Fees -Phone -Name of Account 1 Interest -Minimum Balance -End8 -Email -Rate -Preferred method of contact -Overdraft Fee -Stipulations for Withdrawal -Calculation Method +Create() * -Max Amount +Read() -End5 -Num Withdrawals Allowed +Update() +Create() +Delete() +Read() 1 +Update() Fee -End6 +Delete() -Type -Amount * Employee Customer -Open Accounts? -Num of Customers -Debit Card Account -Hours of Operation -Accounts List -End4 -Balance -End3 -Time Active -Ranking -Transaction History -Hire Date -Loan? -Authorized Parties / Levels -Position -Credit Score * -Open/Closed 1 -Salary -Type (Person/Corp.) -Date Opened -Direct Deposit -Password/PIN -Who Opened -Bill Autopay? -Acct Number +Assign Customer ID() +Assign Acct Number() +Create() +Read() +Update() +Delete() Transaction 1 -End1 -Date -Type (Auto/Cash/Check) -Amount * -Account -Origin -Approve or Not -End2 +Create() +Read() +Update() +Delete()

  11. More Design  Use Cases  Walk through typical uses of your software and make sure the state and behavior support those cases  Application Program Interface – API  Write an API for the interface to each of your classes  For each method, define:  Name  Input Parameters  Return Values  Define data types for each attribute  Might mean splitting a single attribute into several

  12. Implementation  Once we are happy with our class definitions, then we get to write some code!!

  13. Summary  Object Oriented Design  Identify the classes  Identify what information each class needs  Identify what each class needs to do  Identify use cases  Define the API  Define the instance variables  Finally – write some code!

Recommend


More recommend