Okay, so let me see if
anything changed after we did this last modification.
Acutally, there is someting that I would like
to do here. Because looking at this a little
bit more, I noticed that there are two
attributes, renewed and due date. That we have in
loanable Item, right? But they don't seem to
be really, attributes or characteristics of loanable Item.
They're more of the characteristics of the association between the
Loanable Item and the patron. Wouldn't you agree?
>> Well, yeah, it's not like you could
only renew a book once in it's entire history.
>> Right. Exactly, exactly. So, that's why what l like
to do is I would like to move those out of loanable
item. And actually there is a construct that we can use
to express this. It's called, we haven't seen it yet, but it's
a special kind of class. It's called an association
class. So, it's a class that is connected to
a specific association. So what we can do
here, we can create this class, which I'm going to
call checked out. I'm going to, associate it with
this, association. I'm going to connect it with this association. And
then I'm going to move the due date and the
renewed attributes From the LoanableItem here in this checked
out class. So in this way, seems to me that
it makes it very explicit for somebody looking at this
class diagram, that these characteristics are characteristics of the loan,
and not of the elements involved in the loan.
>> Can you do the same thing with Fine, isn't Fine a property of the
loan? Yeah, actually is right because
a fine is a fine for a specific loan, right?
>> That's correct.
>> Okay, so yeah. Then we can do that.
We don't need to represent fine as a class, we can just transform
that into an attribute that we can put into the checked out association class.
>> Gotcha.
>> Anything else?
>> Yeah. It occurred to me that there's another thing that happens in one
of my scenarios, I put down
about the patron actually returning an item.
>> Right. Okay, so we would probably need an additional operation,
I guess, for the patron.
>> Right.
>> So, okay, so what I'm going to do, that's pretty easy
to do, I'm just going to add the return operation here in the
patron, and when that happens, that will mean that I'll get rid
of this association class because the item is returned. Is that right?
>> Well, what happens if somebody drops the
book in the book drop, but doesn't pay the,
if it's overdue and doesn't pay the fine?
Will that get rid of the information about what
they owe?
>> Oh, I see. So you can have the item being available, but you still
want to know whether there is any pending fines on the book.
>> Uh-huh, and how much those fines are.
>> And how do you compute how much it is?
>> It's how many days it was, from the time it was
due, to when they returned it. I see. OK.
So you know what we can do? I think
we can put an additional attribute in the checked out
class and I'm going to call it when returned and
that item will have either a special value or it
will contain the date in which the book was
returned. So in this way you should be able to
keep this in the system until it's paid, and also to compute
how much the fine is. Is that working?
>> So the special value is for a normal situation when they
haven't, they don't owe anything and haven't returned it yet.
>> Exactly so that will tell us that,
that the loan is still active basically.
>> Great.
>> Does that work for you?
>> Yes. And you know, I like this. I mean, I feel pretty good
about it. I think we have a nice class diagram. So what I'd like to
do is just go off and clean it up a little bit, and put it
in an IDE so I can pretty print it and rearrange things a little bit.
And then I'd like to sit down again and
just go through it for a last time. And
for some final considerations. So if you don't mind
we will take a ten minute break and reconvene here.
>> That's fine.
>> Alright.