Executive Summary [Ready to Go]

This is the sixth graded lab for CS2102.

1. Stated Aims

  1. Acquire experience taking problems from their description to an initial design

2. Background knowledge

  1. Understand basic concept of Design Diagrams, with classes represented by boxes and lines between the classes representing the associations and inheritance

3. Setup

There is no submitted code for this lab. You are only responsible for submitting answers to the following questions to the TA running the lab.

4.1 Read the following problem description twice

Note: The detail in this question is appropriate for a one-hour lab session, and would not be appropriate as part of a multi-question examination. It is likely you won't be able to finish everything in this question. Please pay attention to those areas you are having difficulty and review the study guide and past examples as shown in class.

A Bank has hired you as a consultant to review an initial object oriented design. Here is their problem description   

FirstBank has several branches around the state. While FirstBank currently only has 3 branches, we plan to expand to ten branches within five years. Each customer in FirstBank is assigned to a primary branch, although they can access machines at any branch. FirstBank currently offers just checking and savings accounts, but there are plans to expand to open a high interest-bearing Certificate of Deposit Account. Each customer is assigned a checking account and may, optionally, have a number of linked accounts. Each account has a balance and a percentage interest. As per federal regulations, each Account may specify another bank customer as a secondary holder (not the primary account holder)

FirstBank routinely needs to know the sum of the assets stored at all FirstBank branches.

4.2 Decide upon the classes that you are going to design

Select three nouns in the above description that you have decided not to make classes? Explain briefly why not.

Take the classes that you are going to develop and draw them in box-form on a piece of paper.

4.3 Consider Methods and Data to be placed in your classes

Specify with each class selected in step 4.2 the operations and data that will be stored by that class.

4.4 Capture the Relationships and associations between classes

Draw the relevant Association Lines and/or Inheritance relationships between the existing classes.

4.5 Answer the following questions

  1. Do you have a class Customer? Explain why or why not. If you have the class, what does its constructor look like?
  2. Do you have a class Account? Explain why or why not. If you don't have a class Account, explain how you store the balance, say, of a Savings account. If you do have a class Account, explain why it is or is not an abstract class, and describe its Constructor.
  3. What is the relationship (if one exists) between Bank and Customer?
  4. Where in the design do you specify that every customer has a checking account?
  5. What is the relationship (if one exists) between Bank and Account?

5. Turnin

  1. There is nothing to turnin electronically. You are only responsible for SHOWING YOUR answers to the written questions and SIGNING the SIGN IN sheet. I want you to take your questions home with you so you can review your answers with the solutions to be posted by the professor.
  2. A solution will be posted by 6PM Wednesday night, for those of you
Date Reason/Change
12/12/06 Ready to go