diff options
Diffstat (limited to 'usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt')
-rw-r--r-- | usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt | 328 |
1 files changed, 328 insertions, 0 deletions
diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt new file mode 100644 index 0000000..1e47ea6 --- /dev/null +++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt @@ -0,0 +1,328 @@ +1 +00:00:00,260 --> 00:00:01,720 +Okay, so let me see if + +2 +00:00:01,720 --> 00:00:07,930 +anything changed after we did this last modification. + +3 +00:00:07,930 --> 00:00:09,530 +Acutally, there is someting that I would like + +4 +00:00:09,530 --> 00:00:12,120 +to do here. Because looking at this a little + +5 +00:00:12,120 --> 00:00:15,560 +bit more, I noticed that there are two + +6 +00:00:15,560 --> 00:00:18,760 +attributes, renewed and due date. That we have in + +7 +00:00:18,760 --> 00:00:21,640 +loanable Item, right? But they don't seem to + +8 +00:00:21,640 --> 00:00:25,590 +be really, attributes or characteristics of loanable Item. + +9 +00:00:25,590 --> 00:00:29,150 +They're more of the characteristics of the association between the + +10 +00:00:29,150 --> 00:00:31,450 +Loanable Item and the patron. Wouldn't you agree? + +11 +00:00:32,470 --> 00:00:34,230 +>> Well, yeah, it's not like you could + +12 +00:00:34,230 --> 00:00:37,644 +only renew a book once in it's entire history. + +13 +00:00:37,644 --> 00:00:41,220 +>> Right. Exactly, exactly. So, that's why what l like + +14 +00:00:41,220 --> 00:00:43,970 +to do is I would like to move those out of loanable + +15 +00:00:43,970 --> 00:00:48,020 +item. And actually there is a construct that we can use + +16 +00:00:48,020 --> 00:00:50,710 +to express this. It's called, we haven't seen it yet, but it's + +17 +00:00:50,710 --> 00:00:52,780 +a special kind of class. It's called an association + +18 +00:00:52,780 --> 00:00:55,480 +class. So, it's a class that is connected to + +19 +00:00:55,480 --> 00:00:57,730 +a specific association. So what we can do + +20 +00:00:57,730 --> 00:01:00,730 +here, we can create this class, which I'm going to + +21 +00:01:00,730 --> 00:01:05,200 +call checked out. I'm going to, associate it with + +22 +00:01:05,200 --> 00:01:09,520 +this, association. I'm going to connect it with this association. And + +23 +00:01:09,520 --> 00:01:11,620 +then I'm going to move the due date and the + +24 +00:01:11,620 --> 00:01:16,300 +renewed attributes From the LoanableItem here in this checked + +25 +00:01:16,300 --> 00:01:18,520 +out class. So in this way, seems to me that + +26 +00:01:18,520 --> 00:01:20,910 +it makes it very explicit for somebody looking at this + +27 +00:01:20,910 --> 00:01:25,530 +class diagram, that these characteristics are characteristics of the loan, + +28 +00:01:25,530 --> 00:01:28,200 +and not of the elements involved in the loan. + +29 +00:01:28,200 --> 00:01:33,410 +>> Can you do the same thing with Fine, isn't Fine a property of the + +30 +00:01:33,410 --> 00:01:36,740 +loan? Yeah, actually is right because + +31 +00:01:36,740 --> 00:01:39,120 +a fine is a fine for a specific loan, right? + +32 +00:01:39,120 --> 00:01:39,910 +>> That's correct. + +33 +00:01:39,910 --> 00:01:41,950 +>> Okay, so yeah. Then we can do that. + +34 +00:01:41,950 --> 00:01:45,900 +We don't need to represent fine as a class, we can just transform + +35 +00:01:45,900 --> 00:01:49,460 +that into an attribute that we can put into the checked out association class. + +36 +00:01:49,460 --> 00:01:50,560 +>> Gotcha. + +37 +00:01:50,560 --> 00:01:52,760 +>> Anything else? + +38 +00:01:52,760 --> 00:01:57,990 +>> Yeah. It occurred to me that there's another thing that happens in one + +39 +00:01:57,990 --> 00:02:00,260 +of my scenarios, I put down + +40 +00:02:00,260 --> 00:02:02,770 +about the patron actually returning an item. + +41 +00:02:02,770 --> 00:02:07,620 +>> Right. Okay, so we would probably need an additional operation, + +42 +00:02:07,620 --> 00:02:08,550 +I guess, for the patron. + +43 +00:02:08,550 --> 00:02:08,990 +>> Right. + +44 +00:02:08,990 --> 00:02:11,310 +>> So, okay, so what I'm going to do, that's pretty easy + +45 +00:02:11,310 --> 00:02:15,350 +to do, I'm just going to add the return operation here in the + +46 +00:02:15,350 --> 00:02:19,310 +patron, and when that happens, that will mean that I'll get rid + +47 +00:02:19,310 --> 00:02:23,490 +of this association class because the item is returned. Is that right? + +48 +00:02:23,490 --> 00:02:27,060 +>> Well, what happens if somebody drops the + +49 +00:02:27,060 --> 00:02:29,400 +book in the book drop, but doesn't pay the, + +50 +00:02:29,400 --> 00:02:31,050 +if it's overdue and doesn't pay the fine? + +51 +00:02:31,050 --> 00:02:32,700 +Will that get rid of the information about what + +52 +00:02:32,700 --> 00:02:33,040 +they owe? + +53 +00:02:33,040 --> 00:02:37,960 +>> Oh, I see. So you can have the item being available, but you still + +54 +00:02:37,960 --> 00:02:42,510 +want to know whether there is any pending fines on the book. + +55 +00:02:42,510 --> 00:02:44,390 +>> Uh-huh, and how much those fines are. + +56 +00:02:44,390 --> 00:02:46,340 +>> And how do you compute how much it is? + +57 +00:02:47,420 --> 00:02:52,710 +>> It's how many days it was, from the time it was + +58 +00:02:52,710 --> 00:02:58,170 +due, to when they returned it. I see. OK. + +59 +00:02:58,170 --> 00:03:00,380 +So you know what we can do? I think + +60 +00:03:00,380 --> 00:03:03,690 +we can put an additional attribute in the checked out + +61 +00:03:03,690 --> 00:03:07,190 +class and I'm going to call it when returned and + +62 +00:03:07,190 --> 00:03:10,200 +that item will have either a special value or it + +63 +00:03:10,200 --> 00:03:12,040 +will contain the date in which the book was + +64 +00:03:12,040 --> 00:03:14,520 +returned. So in this way you should be able to + +65 +00:03:14,520 --> 00:03:18,040 +keep this in the system until it's paid, and also to compute + +66 +00:03:18,040 --> 00:03:19,970 +how much the fine is. Is that working? + +67 +00:03:19,970 --> 00:03:23,210 +>> So the special value is for a normal situation when they + +68 +00:03:23,210 --> 00:03:25,880 +haven't, they don't owe anything and haven't returned it yet. + +69 +00:03:25,880 --> 00:03:28,080 +>> Exactly so that will tell us that, + +70 +00:03:28,080 --> 00:03:29,970 +that the loan is still active basically. + +71 +00:03:29,970 --> 00:03:30,500 +>> Great. + +72 +00:03:30,500 --> 00:03:31,480 +>> Does that work for you? + +73 +00:03:31,480 --> 00:03:35,200 +>> Yes. And you know, I like this. I mean, I feel pretty good + +74 +00:03:35,200 --> 00:03:38,490 +about it. I think we have a nice class diagram. So what I'd like to + +75 +00:03:38,490 --> 00:03:43,280 +do is just go off and clean it up a little bit, and put it + +76 +00:03:43,280 --> 00:03:48,640 +in an IDE so I can pretty print it and rearrange things a little bit. + +77 +00:03:48,640 --> 00:03:50,080 +And then I'd like to sit down again and + +78 +00:03:50,080 --> 00:03:52,730 +just go through it for a last time. And + +79 +00:03:52,730 --> 00:03:54,900 +for some final considerations. So if you don't mind + +80 +00:03:54,900 --> 00:03:56,880 +we will take a ten minute break and reconvene here. + +81 +00:03:56,880 --> 00:03:57,500 +>> That's fine. + +82 +00:03:57,500 --> 00:03:57,990 +>> Alright. + |