• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

IBM question - Mortgage

 
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Based on the following CRC card, what methods should Mortgage have? (3 correct choices). http://certify.torolab.ibm.com/figures/test486F10.gif
a) accrue( anAmountOfInterest )
b) calculateInterest( )
c) apply( aPayment )
d) getCollateral( )
Any one who can help with this question? Thanks!
 
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
CRC cards are used as roles which people play to identify resposibilities.Somebody would be playing a role of a Mortgage class to identify what he would be responsible for.
The list of responsibilties in the problem does make our task simpler.
Since, the Mortgage object accrues/applies interest, the method
accrue( anAmountOfInterest ) and a) is correct!!
Mortgage wouldn't be resposible to calculate interest; this responsibility lies with its Collaborator,Amortization table - Hence calculateInterest() and b) is incorrect!!
Since, Mortgage accepts Payment, coupling (having a knowledge of) of Payment with Mortgage object is acceptable (and inevitable).Hence, apply(aPayment) and c) is correct!!
Note that the payment argument would collaborate with Mortgage's collaborator - Payment!!
Since, the Mortgage knows about its Collateral Property, getCollateral() has to one of the behaviours of Mortgage object.Hence d) is correct!!
So the answers are a), c), d)
Hope this helps,
-- Sandeep
[This message has been edited by Desai Sandeep (edited May 16, 2001).]
 
Caroline Iux
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks a lot!
 
Caroline Iux
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have a follow-up question here:
Given the requirement statement, which of the following public methods would be used in a related sequence diagram? [Two right options]
http://certify.torolab.ibm.com/figures/test486F14.gif
a) aBalance.subtract( anAmount )
b) anAmortizationTable.calculateInterestUsing( aPayment )
c) anAmortizationTable.apply( aPayment )
d) aMortgage.apply( aPayment )
My answers: bd. This is based on my previous question and Desai Sandeep's explaination. But if I hadn't seen the previous question, I really don't know whether to choose b,c or b,d. I am not familiar with morgage terms at all and I don't see how I can get d just from the graph and eliminate c.
Can I anyone explain a generic approach to this kind of question? I feel I am week at this kind of quesiton. Thanks in advance!
 
Ranch Hand
Posts: 233
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Caroline,
The requirement is:
"When a mortgage payment is received, the appropriate amortization table will be use to calculate the interest and principle amounts to apply against the balance."
The question is which 2 of the 4 methods would be used in a related sequence diagram.
Well, a first step would be to think of the _objects_ that will partake in the sequence diagram. Those would be aMortgage (obviously) and anAmortizationTable.
Now think about the _messages_ that will go back and forth between those objects. Those are clearly extracted from the requirement. First of all, some "actor" outside the system boundary will make a payment for the mortgage. Thus, d) (aMortgage.apply(aPayment)) has to be there.
In response to that message aMortgage will "tell" the amortization table (the "expert" of interest calculations) to calculate the interest. Hence b) (anAmortizationTable.calculateInterestUsing( aPayment)).
Now, you wonder why c) is eliminated. Well, here is why: A payment is applied to a _mortgage_. It is the mortgage that is really a loan that has to paid back by somebody. The amortization table is simply used for interest calculations. Payments are *not* applied against the table. I'm not an Economics Ph.D. but this is pretty basic understanding one needs to have. It seems that a little bit of exposure to business information systems is even silently expected for this test.
Hope this helped,
Panagiotis.
 
Caroline Iux
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for the post!
So according to the requirement and the way you approached the question, "aMortization" could also have a getPrincipleAmount() method and "aMortgage" could have a getBalance() method. In additional, I guess in applyPayment() of "aMortgage" may update the balance with the collaboration of "aMortization".
This is just my understanding, please correct me if I am wrong.

[This message has been edited by Caroline Iux (edited May 20, 2001).]
 
Caroline Iux
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here is another similar quesiton from the pre-assessment test. I tried to apply Panagiotis's approach. Please correct me if I am wrong.
23) What is the BEST model change for the following new requirements in the mortgage processing system? http://certify.torolab.ibm.com/figures/test486F18.gif
a) Add an updateAssessedValue( newValue ) method to the Property class, which uses newValue in collaboration with the TaxingAuthority's tax rates to provide tax amounts.
b) Add an updateAssessedValue( newValue ) method to the Mortgage class, which uses newValue in collaboration with the Property's tax rates to provide tax amounts.
c) Add an updateAssessedValue( newValue ) method to the TaxingAuthority class, which uses its tax rates to provide tax amounts.
d) Add an updateAssessedValue( newValue ) method to the Property class, which uses its tax notes to provide tax amounts.
According to the graph, there will be at lease two objects, Property and TaxingAuthority. Property should be the expert of knowing its asset value. So updating assessed value should be the responsibility of Property class. TaxingAuthority for the same reason, would be proper to be asked for tax rate. So the answer is a.
Also, if the question asked about providing tax amounts, I think Property should be the right one to provide it.
Thanks!
 
Desai Sandeep
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Caroline,
A is correct.
Since the Taxable value is an attribute of Property, it is an "informational expert" to set this value to the new value.To get the new value it has to collaborate with the TaxingAuthority.Once the internal attribute of the Property is set to the new Value, the "taxable value changes" would be remembered.
Hope this helps,
Sandeep
 
Ranch Hand
Posts: 188
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Desai Sandeep:
Caroline,
A is correct.
Since the Taxable value is an attribute of Property, it is an "informational expert" to set this value to the new value.To get the new value it has to collaborate with the TaxingAuthority.Once the internal attribute of the Property is set to the new Value, the "taxable value changes" would be remembered.
Hope this helps,
Sandeep


I am a little confuse. Why is http://certify.torolab.ibm.com/figures/test486F18.gif has got anything to do with the Mortgage system(in the previous post) ?
Can B be an answer too? Why not? Is it because the gif file does not elaborate any Mortgage class?

------------------
Thank you.
- Simon See
simon-ivy@usa.net
-after office hours-
necro-mani-cide
 
Desai Sandeep
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Simon,
Here the Expert Pattern is applied.You need to ask who is the "informational expert" for the attribute "Taxable Value"?Who can set a new value for the "Taxable Value"?It has to be some class which knows about the Taxable value.
We can deduce from the Exhibit that "Taxable Value" is of Property class.Also, we can infer that "Tax rates" is managed by "Taxing Authority".Option B suggests that the "Taxable Value" is to be managed by the Mortgage class and the "Tax rates" are managed by the Property class which is incorrect.
Hope this helps,
Sandeep

 
Jes Sie
Ranch Hand
Posts: 188
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Sandeep. What a simple deduction! I supposed the mortgage processing system thing is just a distraction? The Exhibit itself is more than sufficient to answer the question.
------------------
Thank you.
- Simon See
simon-ivy@usa.net
-after office hours-
necro-mani-cide
 
reply
    Bookmark Topic Watch Topic
  • New Topic