From 8a7dfa0972c83fd811a4296e7373574bea4a28d0 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 19 Jul 2020 20:34:40 +0700 Subject: [usth/ICT2.7] Remove Udacity transcribes --- .../1 - Introduction - lang_en.srt | 88 ---- .../10 - Debriefing - lang_en.srt | 104 ---- .../2 - Analyzing Requirements - lang_en.srt | 579 --------------------- ...- Refining Classes and Attributes - lang_en.srt | 535 ------------------- .../4 - Adding Attributes - lang_en.srt | 352 ------------- .../5 - Identifying Operations - lang_en.srt | 304 ----------- .../6 - Adding Relationships - lang_en.srt | 488 ----------------- .../7 - Refining Relationships - lang_en.srt | 188 ------- .../8 - Refining the Class Diagram - lang_en.srt | 328 ------------ .../9 - Final Considerations - lang_en.srt | 196 ------- 10 files changed, 3162 deletions(-) delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt delete mode 100644 usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt (limited to 'usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles') diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt deleted file mode 100644 index f6386ed..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt +++ /dev/null @@ -1,88 +0,0 @@ -1 -00:00:00,430 --> 00:00:05,994 -Hello and welcome to a tale of analysis and design, featuring - -2 -00:00:05,994 --> 00:00:10,809 -Spencer Rugaber, as the librarian, and Alex Orso, - -3 -00:00:10,809 --> 00:00:15,779 -as the software engineer. [SOUND] - -4 -00:00:15,779 --> 00:00:21,520 ->> Hi! I'm here waiting for Spencer, my librarian friend. He needs some - -5 -00:00:21,520 --> 00:00:25,470 -help developing an information system for a library. So I asked him to write - -6 -00:00:25,470 --> 00:00:29,669 -down the requirements for the libra... Oh, [SOUND] that must be him. - -7 -00:00:29,669 --> 00:00:30,850 ->> Hello Alex. - -8 -00:00:30,850 --> 00:00:32,470 ->> Hey Spencer. How's it going? - -9 -00:00:32,470 --> 00:00:34,690 ->> Good. Did you get those requirements I emailed you? - -10 -00:00:34,690 --> 00:00:36,890 ->> Oh, you emailed them. Now let me check. - -11 -00:00:36,890 --> 00:00:38,780 -And, by the way, get some coffee for you here. - -12 -00:00:38,780 --> 00:00:39,880 ->> Thank you very much. - -13 -00:00:41,840 --> 00:00:46,790 ->> Oh yeah. They're right here. Let me see. Oh, good. Oh, yeah, - -14 -00:00:46,790 --> 00:00:50,580 -good. We have, what we need. So the, the way I like to do - -15 -00:00:50,580 --> 00:00:52,500 -this is. I like to start by - -16 -00:00:52,500 --> 00:00:55,430 -looking at the requirements and identifying the nouns - -17 -00:00:55,430 --> 00:00:57,530 -in the requirements, because those tell us - -18 -00:00:57,530 --> 00:01:00,080 -the kind of the relevant elements in the, - -19 -00:01:00,080 --> 00:01:03,360 -in the requirements. So if you don't mind we can start looking at those and - -20 -00:01:03,360 --> 00:01:07,070 -you can tell me you know, whether the ones that I am identifying make sense or not. - -21 -00:01:07,070 --> 00:01:07,920 ->> Sounds good. - -22 -00:01:07,920 --> 00:01:08,500 ->> All right. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt deleted file mode 100644 index cc76d09..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt +++ /dev/null @@ -1,104 +0,0 @@ -1 -00:00:00,210 --> 00:00:02,200 ->> So Spencer, now that we went through - -2 -00:00:02,200 --> 00:00:05,340 -this process and, I'd just like to hear - -3 -00:00:05,340 --> 00:00:07,090 -whether you enjoyed it, whether you think it - -4 -00:00:07,090 --> 00:00:09,640 -was useful. What are your thoughts? - -5 -00:00:09,640 --> 00:00:11,661 ->> Well, ti was very interesting. I not only - -6 -00:00:11,661 --> 00:00:16,541 -learned something about computers and about how you design information systems - -7 -00:00:16,541 --> 00:00:19,713 -in UML, but I, it was interesting. I also learned something - -8 -00:00:19,713 --> 00:00:25,290 -interesting about the library. And things that, that I knew but - -9 -00:00:25,290 --> 00:00:27,920 -I never really, explicitly written down. - -10 -00:00:27,920 --> 00:00:28,099 ->> Uh-huh. - -11 -00:00:28,099 --> 00:00:32,280 ->> Came up during the course of doing this. And I think I now - -12 -00:00:32,280 --> 00:00:35,800 -much better understand what this information system that you're - -13 -00:00:35,800 --> 00:00:38,590 -going to build for us, is really all about. - -14 -00:00:38,590 --> 00:00:40,480 ->> Okay, well, I mean, I'm very happy that you say - -15 -00:00:40,480 --> 00:00:43,040 -that, because I really believe that, you know, doing this kind - -16 -00:00:43,040 --> 00:00:46,870 -of analysis and design exercises really helps you figuring out whether - -17 -00:00:46,870 --> 00:00:50,480 -there's any issues with the requirements. So for example, you can find - -18 -00:00:50,480 --> 00:00:53,580 -out whether there's any missing information, or maybe conflicting - -19 -00:00:53,580 --> 00:00:56,820 -information. And I think that's exactly what happened today. - -20 -00:00:56,820 --> 00:01:01,120 -So I'm very glad to hear that it worked for you. That you enjoyed it. I hope you - -21 -00:01:01,120 --> 00:01:03,690 -enjoyed it as well. And I strongly encourage you - -22 -00:01:03,690 --> 00:01:06,000 -to do this kind of exercises for different kinds - -23 -00:01:06,000 --> 00:01:08,630 -of systems. So as you can become more familiar - -24 -00:01:08,630 --> 00:01:12,410 -with analysis and design techniques. So, any final thoughts? - -25 -00:01:12,410 --> 00:01:15,440 ->> I look forward to receiving your delivered software. - -26 -00:01:15,440 --> 00:01:16,440 ->> All right. Will do. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt deleted file mode 100644 index 909fb2d..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt +++ /dev/null @@ -1,579 +0,0 @@ -1 -00:00:00,220 --> 00:00:04,900 -Okay so let me start underlining these nouns, and I'll start - -2 -00:00:04,900 --> 00:00:07,810 -identifying the ones that are relevant, and I'll ask you some - -3 -00:00:07,810 --> 00:00:10,550 -questions or you can ask me questions if - -4 -00:00:10,550 --> 00:00:14,666 -you see something that doesn't make sense to you. Good enough. - -5 -00:00:14,666 --> 00:00:17,650 ->> okay, let's see, patron. It seems to - -6 -00:00:17,650 --> 00:00:19,670 -me that patron is definitely an important entity. - -7 -00:00:19,670 --> 00:00:20,808 ->> That's, that's what its all about. - -8 -00:00:20,808 --> 00:00:23,270 ->> Okay, all right, so actually, the way - -9 -00:00:23,270 --> 00:00:25,750 -I'm going to do this, I'm going to take all these relevant - -10 -00:00:25,750 --> 00:00:28,610 -entities and I'm going to start putting them into what I call a class - -11 -00:00:28,610 --> 00:00:32,450 -diagram. So you don't really need to know what that is exactly, but imagine - -12 -00:00:32,450 --> 00:00:37,150 -this being a, a diagram in which I'm drawing, I represent in all development - -13 -00:00:37,150 --> 00:00:42,260 -items as rectangles with a given name and, and then later on some attributes. - -14 -00:00:42,260 --> 00:00:42,660 ->> Okay. - -15 -00:00:42,660 --> 00:00:44,055 ->> Okay, and I'm, I'm just going to put - -16 -00:00:44,055 --> 00:00:45,600 -them there. So I'm going to start with patron. - -17 -00:00:45,600 --> 00:00:48,420 -I'm going to create one class for the - -18 -00:00:48,420 --> 00:00:50,250 -patron. I'm going to give it the name patron. - -19 -00:00:51,380 --> 00:00:54,120 -And by the way, assuming that you'd probably figure out, it's important that we - -20 -00:00:54,120 --> 00:00:57,430 -represent, we use the right names so that it's clear when we're looking at - -21 -00:00:57,430 --> 00:01:00,790 -the class diagram what we're referring to, so I'll just use the, the nouns - -22 -00:01:00,790 --> 00:01:06,520 -themselves as names. Okay, library card seems to be also a relevant element. - -23 -00:01:06,520 --> 00:01:08,072 ->> Every patron has a library card. - -24 -00:01:08,072 --> 00:01:09,530 ->> All right, perfect, so we'll just - -25 -00:01:09,530 --> 00:01:12,880 -create a library card here. And let's see. - -26 -00:01:12,880 --> 00:01:16,530 -As, as long as they're in the system. And I saw that there's a system - -27 -00:01:16,530 --> 00:01:19,000 -here, this concept of system, this concept - -28 -00:01:19,000 --> 00:01:22,076 -of library. And based on my experience, normally, - -29 -00:01:22,076 --> 00:01:26,574 -those are kind of in an overarching themes. So this is really what we are - -30 -00:01:26,574 --> 00:01:28,597 -modeling. So the only - -31 -00:01:28,597 --> 00:01:30,297 -thing that will make a difference is - -32 -00:01:30,297 --> 00:01:34,120 -if there were more than one library or more than one system. Is that the case? - -33 -00:01:34,120 --> 00:01:36,740 ->> We just want one system for our one library - -34 -00:01:36,740 --> 00:01:38,770 ->> Okay so, in this case I won't even represent - -35 -00:01:38,770 --> 00:01:41,540 -those because basically what I'm representing is the system and - -36 -00:01:41,540 --> 00:01:41,990 -the library. - -37 -00:01:41,990 --> 00:01:42,740 ->> I understand, I understand. - -38 -00:01:42,740 --> 00:01:44,420 - -39 -00:01:44,420 --> 00:01:48,350 -Okay and then, oh name, address and phone - -40 -00:01:48,350 --> 00:01:51,510 -number are interesting because these are important entities, - -41 -00:01:51,510 --> 00:01:53,180 -but this seems like, you know, they're not - -42 -00:01:53,180 --> 00:01:56,550 -entities in themselves, so they're more attributes - -43 -00:01:56,550 --> 00:01:58,070 -of something else. I would imagine that - -44 -00:01:58,070 --> 00:02:00,080 -this is the way you identify, or these - -45 -00:02:00,080 --> 00:02:01,860 -are elements that are important for the patron? - -46 -00:02:01,860 --> 00:02:04,880 ->> That's what we take down when we issue the cards. - -47 -00:02:04,880 --> 00:02:06,800 ->> Okay. Perfect. So, I'm going to - -48 -00:02:06,800 --> 00:02:09,710 -take those and make those attributes of the patron, which means - -49 -00:02:09,710 --> 00:02:12,350 -that I'm going to take the class that I created before, and I'm - -50 -00:02:12,350 --> 00:02:16,430 -just going to write them down here so that they're represented and, - -51 -00:02:16,430 --> 00:02:19,360 -and we know that these are kind of what characterizes the patron. - -52 -00:02:19,360 --> 00:02:20,070 ->> Gotcha. - -53 -00:02:20,070 --> 00:02:25,540 ->> Okay? And then, I guess similar consideration for the library - -54 -00:02:25,540 --> 00:02:28,750 -card number. So this is to be associated with the library card? - -55 -00:02:28,750 --> 00:02:29,902 ->> It's printed right on it. - -56 -00:02:29,902 --> 00:02:32,180 ->> All right, so we'll put this as - -57 -00:02:32,180 --> 00:02:38,130 -an attribute of the library card, then. And then, in addition, at any particular point - -58 -00:02:38,130 --> 00:02:43,630 -in time. Okay, so time seems to be a relevant entity right, - -59 -00:02:43,630 --> 00:02:47,880 -because time seems to occur several times in this description. For example, I - -60 -00:02:47,880 --> 00:02:53,940 -think you guys keep track of how long a book has been loaned, right? - -61 -00:02:53,940 --> 00:02:54,300 ->> Right. - -62 -00:02:54,300 --> 00:02:57,270 ->> And there's some time associated also here. - -63 -00:02:57,270 --> 00:02:58,380 ->> And a children's age. - -64 -00:02:58,380 --> 00:02:59,760 ->> Oh yeah. The children's age here that - -65 -00:02:59,760 --> 00:03:02,200 -I didn't see before. Yeah. So, what - -66 -00:03:02,200 --> 00:03:03,800 -I'm going to do, I'm going to represent this in - -67 -00:03:03,800 --> 00:03:05,520 -a sort of generic way, as a date. - -68 -00:03:05,520 --> 00:03:06,520 ->> Okay. - -69 -00:03:06,520 --> 00:03:08,380 ->> These are kind of, kind of classes, utility - -70 -00:03:08,380 --> 00:03:10,880 -classes we call them, that are normally in every system. - -71 -00:03:10,880 --> 00:03:10,970 ->> Okay. - -72 -00:03:10,970 --> 00:03:13,060 ->> So I'm just going to put it down here - -73 -00:03:13,060 --> 00:03:14,940 -as a utility class that will be used - -74 -00:03:14,940 --> 00:03:18,780 -by different elements in the diagram. Okay, so - -75 -00:03:18,780 --> 00:03:23,070 -I want to calculate the items. So the items also - -76 -00:03:23,070 --> 00:03:25,230 -I mean I for what I know about libraries they - -77 -00:03:25,230 --> 00:03:28,490 -seem to be pretty relevant elements, right? So these are all - -78 -00:03:28,490 --> 00:03:31,305 ->> This is what we check out, this is what we're for. - -79 -00:03:31,305 --> 00:03:34,459 ->> Okay, so then items definitely will become a - -80 -00:03:34,459 --> 00:03:37,349 -class, and then we have a due. Oh there's also - -81 -00:03:37,349 --> 00:03:39,730 -this concept of fines. I guess that seems to be - -82 -00:03:39,730 --> 00:03:42,330 -important. Right? You guys give fines to people who are late. - -83 -00:03:42,330 --> 00:03:42,700 ->> Right, right. - -84 -00:03:42,700 --> 00:03:49,160 ->> Right, collect fines and so on. So we create a fine class down here and - -85 -00:03:49,160 --> 00:03:54,150 -the children. So children are special customers, right? It's - -86 -00:03:55,240 --> 00:03:56,890 -their age makes a difference? Is that the way it works? - -87 -00:03:56,890 --> 00:03:58,950 ->> Right. They, they can only check out a few books. - -88 -00:03:58,950 --> 00:04:01,410 ->> Okay. So I'll create them a special - -89 -00:04:01,410 --> 00:04:03,170 -kind of case, a special kind of customer so - -90 -00:04:03,170 --> 00:04:06,000 -I just create here a class for children. And - -91 -00:04:06,000 --> 00:04:08,682 -I can see that they're categorized by their age. - -92 -00:04:08,682 --> 00:04:09,340 ->> Right. - -93 -00:04:09,340 --> 00:04:13,160 ->> So I'll just put the age here as an attribute of the child. - -94 -00:04:14,220 --> 00:04:15,712 -And, okay, so the next one is - -95 -00:04:15,712 --> 00:04:19,653 -restriction. And restriction is kind of tricky because just - -96 -00:04:19,653 --> 00:04:22,010 -to be sort of a general concept. I mean, - -97 -00:04:22,010 --> 00:04:24,915 -in a sense, all of those are restrictions, right? - -98 -00:04:24,915 --> 00:04:28,250 ->> Right, this is just another one of these requirements. - -99 -00:04:28,250 --> 00:04:31,180 ->> Oh, okay, so, so we don't need to represent it explicitly, right? - -100 -00:04:31,180 --> 00:04:31,430 ->> Right, right. - -101 -00:04:31,430 --> 00:04:34,390 ->> It's just telling us how the children, yeah, okay, right; this is - -102 -00:04:34,390 --> 00:04:39,151 -just another requirement, so I just won't consider that for now. And oh, - -103 -00:04:39,151 --> 00:04:43,444 -I see that these books and audio video materials, I guess these - -104 -00:04:43,444 --> 00:04:48,902 -are things that the patrons can check out, right? - -105 -00:04:48,902 --> 00:04:50,725 ->> Those are some of the items, right. - -106 -00:04:50,725 --> 00:04:53,770 ->> There are two - -107 -00:04:53,770 --> 00:04:56,380 -more down here, right? Reference books and magazines? - -108 -00:04:56,380 --> 00:04:57,990 ->> But, they can't be checked - -109 -00:04:57,990 --> 00:04:59,270 -out, but they're definitely in the library. - -110 -00:04:59,270 --> 00:05:01,338 ->> Okay, so then I'm going to represent all of those - -111 -00:05:01,338 --> 00:05:04,180 -actually, now. So, I'm going to have books, I'm going to have audio - -112 -00:05:04,180 --> 00:05:07,990 -video materials, reference books, and magazines. And - -113 -00:05:07,990 --> 00:05:12,150 -I'm just going to have those as classes. Then, - -114 -00:05:12,150 --> 00:05:14,060 -okay here we have week, and we - -115 -00:05:14,060 --> 00:05:16,630 -already represented this general concept of time, so - -116 -00:05:16,630 --> 00:05:23,270 -week will be represented by the date class as well. And oh, I see best sellers. - -117 -00:05:23,270 --> 00:05:27,520 -So best sellers are also, I guess, items that can be checked out, right? - -118 -00:05:27,520 --> 00:05:28,150 ->> Right. - -119 -00:05:28,150 --> 00:05:29,330 ->> Okay, so I'll - -120 -00:05:29,330 --> 00:05:32,900 -just represent those as a class as well and an additional item that - -121 -00:05:32,900 --> 00:05:38,480 -is relevant for the library. And the limit, this is also a time limit, right? - -122 -00:05:38,480 --> 00:05:39,150 ->> Right. - -123 -00:05:39,150 --> 00:05:41,500 ->> So it can also be represented with a, with a class. - -124 -00:05:43,860 --> 00:05:47,380 -Oh, here we have cents, and for cents, same consideration that made - -125 -00:05:47,380 --> 00:05:50,430 -for time. This is kind of the money, is a general concept - -126 -00:05:50,430 --> 00:05:54,240 -that in all currency, many, in many IT systems. So, I'm, I'm - -127 -00:05:54,240 --> 00:05:57,430 -going to just have a money class here, which is another utility class. - -128 -00:05:57,430 --> 00:05:57,740 ->> Okay - -129 -00:05:57,740 --> 00:06:04,000 ->> Okay, and, oh, here I have value, so value is a property. - -130 -00:06:04,000 --> 00:06:09,320 -Let me look again at the requirement. Oh, it's the value of the item. So value - -131 -00:06:09,320 --> 00:06:11,450 -I'm going to put in the item as an attribute. Okay? - -132 -00:06:11,450 --> 00:06:13,120 ->> Okay. That's how much it cost us. - -133 -00:06:13,120 --> 00:06:14,090 ->> Okay. Perfect. - -134 -00:06:14,090 --> 00:06:18,400 ->> Seems like we got them all. Right? Anything I forgot? - -135 -00:06:18,400 --> 00:06:19,640 ->> That looks like it. - -136 -00:06:19,640 --> 00:06:22,580 ->> Okay, so this one, what I'd like to do. We have a kind of - -137 -00:06:22,580 --> 00:06:26,890 -a first take, first cut at the class diagram. I'd like to kind of - -138 -00:06:26,890 --> 00:06:31,480 -move to that and go through the different classes with you. And I'll ask - -139 -00:06:31,480 --> 00:06:33,440 -you some questions again. And you can - -140 -00:06:33,440 --> 00:06:34,510 -tell me whether there is something that - -141 -00:06:34,510 --> 00:06:36,894 -jumps at you that's not right. And - -142 -00:06:36,894 --> 00:06:38,930 -then we're going to try to refine that. - -143 -00:06:38,930 --> 00:06:39,180 ->> Okay - -144 -00:06:39,180 --> 00:06:39,510 ->> Okay. - -145 -00:06:39,510 --> 00:06:39,800 ->> Sounds good. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt deleted file mode 100644 index 271c2fd..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt +++ /dev/null @@ -1,535 +0,0 @@ -1 -00:00:00,880 --> 00:00:03,920 -Okay, so this is our first, class diagram. - -2 -00:00:03,920 --> 00:00:06,260 ->> So, let me ask you something about. - -3 -00:00:06,260 --> 00:00:06,520 ->> Okay. - -4 -00:00:06,520 --> 00:00:08,930 ->> What we've done so far. I also sent, in what - -5 -00:00:08,930 --> 00:00:14,490 -I sent you, I also had some stories about how the actual - -6 -00:00:14,490 --> 00:00:16,400 ->> Library is used. You asked me to do - -7 -00:00:16,400 --> 00:00:18,950 -that and are we going to take, use that here? - -8 -00:00:20,160 --> 00:00:23,300 ->> Glad you asked actually. yeah. Those are, you know, what we call use - -9 -00:00:23,300 --> 00:00:25,940 -cases, or what we will use as scenarios kind of things that we will - -10 -00:00:25,940 --> 00:00:28,340 -use to derive use cases. And they're also a very good - -11 -00:00:28,340 --> 00:00:31,450 -way of extracting requirements. We're not going to look at them right - -12 -00:00:31,450 --> 00:00:33,890 -now because now, because we're more working on kind of the static - -13 -00:00:33,890 --> 00:00:37,860 -structure of the system. But after we're done with the class diagram, - -14 -00:00:37,860 --> 00:00:40,700 -you know, we will do it at a different time. But - -15 -00:00:40,700 --> 00:00:43,410 -we're going to use those to see how the - -16 -00:00:43,410 --> 00:00:45,850 -libraries actually use them, and see whether we can get more - -17 -00:00:45,850 --> 00:00:49,000 -information that we can use to refine our requirements based on that. - -18 -00:00:49,000 --> 00:00:49,770 ->> Okay. - -19 -00:00:49,770 --> 00:00:51,020 ->> Okay, - -20 -00:00:51,020 --> 00:00:52,940 -So, for now, we'll just focus in on the, - -21 -00:00:52,940 --> 00:00:54,630 -structure, but, just so you know, I'm, - -22 -00:00:54,630 --> 00:00:55,870 -I'm glad you sent them, because they were going - -23 -00:00:55,870 --> 00:00:57,380 -very useful as well. - -24 -00:00:59,410 --> 00:01:00,840 -Okay. So let's see. Well, first of all, let - -25 -00:01:00,840 --> 00:01:03,030 -me, seems like that this is already pretty crowded, - -26 -00:01:03,030 --> 00:01:06,770 -right? We have a number of, classes. So let's - -27 -00:01:06,770 --> 00:01:10,580 -see if there's, some class that may be superfluous and - -28 -00:01:10,580 --> 00:01:13,310 -we can model in a different way. So, for - -29 -00:01:13,310 --> 00:01:16,360 -example, you, while, while thinking of this I was thinking, - -30 -00:01:16,360 --> 00:01:19,450 -the library card, it doesn't really contain much - -31 -00:01:19,450 --> 00:01:22,736 -information, right? So is it basically just the number? - -32 -00:01:22,736 --> 00:01:23,948 - -33 -00:01:23,948 --> 00:01:30,760 -The card has a number on it. We have a separate vendor that does that for us so. - -34 -00:01:30,760 --> 00:01:30,810 ->> Oh. - -35 -00:01:30,810 --> 00:01:33,270 ->> We don't need, it doesn't need to be part of this system, - -36 -00:01:33,270 --> 00:01:35,450 -we just have to make sure that every patron has a library card. - -37 -00:01:35,450 --> 00:01:37,670 ->> Okay, so basically for you, in a sense, the library - -38 -00:01:37,670 --> 00:01:41,560 -card is just an ID that gets associated with a patron. - -39 -00:01:41,560 --> 00:01:42,120 ->> That's right. - -40 -00:01:42,120 --> 00:01:45,380 ->> So I think that the best way to represent this, I mean, unless you - -41 -00:01:45,380 --> 00:01:47,000 -need an entity because you are creating it - -42 -00:01:47,000 --> 00:01:49,160 -yourself, but it seems like you are not. - -43 -00:01:49,160 --> 00:01:52,710 -I would just remove this one and I would like to put this, - -44 -00:01:52,710 --> 00:01:56,020 -basically to take the library card number and add it to the pattern. - -45 -00:01:56,020 --> 00:01:57,100 ->> Okay, makes sense. - -46 -00:01:57,100 --> 00:02:03,000 ->> Okay, so I'll add it here. And as - -47 -00:02:03,000 --> 00:02:06,160 -an additional attribute. Okay, and it will eliminate this class. - -48 -00:02:06,160 --> 00:02:06,410 ->> Okay. - -49 -00:02:06,410 --> 00:02:07,580 ->> Okay. - -50 -00:02:09,690 --> 00:02:11,700 -Oh, and, wait a second, so I guess - -51 -00:02:11,700 --> 00:02:13,940 -also the child needs a library card number, right? - -52 -00:02:13,940 --> 00:02:18,320 ->> Child needs a library card number, but let me ask you about that. Is, - -53 -00:02:18,320 --> 00:02:22,050 -is child a separate class, or is it just another kind of patron? - -54 -00:02:22,050 --> 00:02:24,920 ->> Oh, I see, I see. Because, yeah, it - -55 -00:02:24,920 --> 00:02:28,490 -is sort of a special patron, right? And, so - -56 -00:02:28,490 --> 00:02:31,730 -maybe we should, maybe we should represent it as - -57 -00:02:31,730 --> 00:02:35,640 -a kind of a refinement of the patron. - -58 -00:02:35,640 --> 00:02:38,730 -Hm, but then that made me think. So what is - -59 -00:02:38,730 --> 00:02:42,510 -the only thing that characterizes children? Is it just the age? - -60 -00:02:42,510 --> 00:02:47,440 ->> Well, if they're, that they can't check out more than five books. - -61 -00:02:47,440 --> 00:02:48,890 ->> Okay. And the, and the only difference is the - -62 -00:02:48,890 --> 00:02:52,010 -fact that they are less than, you know, twelve years old. - -63 -00:02:52,010 --> 00:02:52,710 ->> Twelve or less, right. - -64 -00:02:52,710 --> 00:02:56,090 ->> Twelve or less. So, I guess, you know, I would probably - -65 -00:02:56,090 --> 00:03:01,120 -like to represent this by making the age explicit in the patron rather - -66 -00:03:01,120 --> 00:03:04,730 -than to represent it as a class. And I'll tell you why, - -67 -00:03:04,730 --> 00:03:08,300 -because one, one of the issues, and you know, that might happen - -68 -00:03:08,300 --> 00:03:13,070 -again, is that, basically, there are patrons that are children. And they're - -69 -00:03:13,070 --> 00:03:17,130 -no longer children, when they come you know 13 or older right. - -70 -00:03:17,130 --> 00:03:18,100 ->> Right. - -71 -00:03:18,100 --> 00:03:21,990 ->> And if we represent them with a separate class in a sense, then we - -72 -00:03:21,990 --> 00:03:26,620 -cannot really change the type of an instance of these classes. - -73 -00:03:26,620 --> 00:03:28,920 -So we're left to kind of destroy the patron, create - -74 -00:03:28,920 --> 00:03:31,190 -a new one, so that means we also have to transfer - -75 -00:03:31,190 --> 00:03:33,510 -any history we want to keep history and so on. - -76 -00:03:33,510 --> 00:03:35,680 -So I, I think I kind of like better the idea - -77 -00:03:35,680 --> 00:03:39,560 -that I represent the age exclusively in - -78 -00:03:39,560 --> 00:03:42,700 -the patron, and then I'll behave differently, based on whether the - -79 -00:03:42,700 --> 00:03:45,910 -patron is 12 years old, or younger, or 13 or, - -80 -00:03:45,910 --> 00:03:49,600 -13 or older. This, do you see any problem with that? - -81 -00:03:49,600 --> 00:03:51,210 ->> It makes things a little simpler. - -82 -00:03:51,210 --> 00:03:51,490 ->> Okay, - -83 -00:03:51,490 --> 00:03:53,550 -and we actually, it allows us also to eliminate - -84 -00:03:53,550 --> 00:03:56,450 -one class here. So I'm going to proceed this way. - -85 -00:03:56,450 --> 00:03:59,450 -I'm going to eliminate the children class, and I'm going to - -86 -00:03:59,450 --> 00:04:03,600 -put the age in the patron. Okay, and let me - -87 -00:04:03,600 --> 00:04:07,020 -see. But in this spirit, actually, something else that jumps - -88 -00:04:07,020 --> 00:04:09,740 -at me is this idea of the bestseller, because I - -89 -00:04:09,740 --> 00:04:11,850 -kind of feel like, we might have the same - -90 -00:04:11,850 --> 00:04:15,085 -problem. So, what is the story? What is a bestseller. - -91 -00:04:15,085 --> 00:04:16,850 ->> Well it's - -92 -00:04:16,850 --> 00:04:20,750 -an item that we want to restrict how - -93 -00:04:20,750 --> 00:04:23,896 -long people can keep, because there is such demand for it. - -94 -00:04:23,896 --> 00:04:26,880 ->> I see, and so basically a book that's a - -95 -00:04:26,880 --> 00:04:30,450 -bestseller, like the New York Times bestseller, is a bestseller forever? - -96 -00:04:30,450 --> 00:04:32,683 ->> No, no, no it's hot for - -97 -00:04:32,683 --> 00:04:35,940 -awhile, and then it becomes just a regular item. - -98 -00:04:35,940 --> 00:04:38,318 ->> I see. Hm. Then I guess it's a - -99 -00:04:38,318 --> 00:04:40,349 -similar situation to the one I was mentioning before, right? - -100 -00:04:40,349 --> 00:04:40,980 ->> Okay. - -101 -00:04:40,980 --> 00:04:41,800 ->> That if we have a book, - -102 -00:04:41,800 --> 00:04:44,530 -it will kind of have to change its type if it becomes a best seller. - -103 -00:04:44,530 --> 00:04:47,218 -Then we have to change its type again, if it's no longer a best seller. - -104 -00:04:47,218 --> 00:04:47,790 ->> Right. - -105 -00:04:47,790 --> 00:04:48,920 ->> So it seems to me that a better - -106 -00:04:48,920 --> 00:04:52,150 -way to represent this, is just to eliminate this BestSeller - -107 -00:04:52,150 --> 00:04:55,060 -class and instead, I'm going to put the best seller - -108 -00:04:55,060 --> 00:04:58,190 -attribute, which would just be a Boolean in the book. - -109 -00:04:58,190 --> 00:05:00,190 ->> Okay, what do you mean by Boolean? - -110 -00:05:00,190 --> 00:05:02,280 ->> Right. We don't know what Boolean is, right? The Boolean is - -111 -00:05:02,280 --> 00:05:04,940 -basically just a number. It can have two values, right? True or false. - -112 -00:05:04,940 --> 00:05:05,380 ->> Okay. - -113 -00:05:05,380 --> 00:05:06,830 ->> So we usually, normally use it - -114 -00:05:06,830 --> 00:05:09,510 -in this in this case. Imagine one, zero, - -115 -00:05:09,510 --> 00:05:10,970 -right? Then it's just kind of the basic. - -116 -00:05:10,970 --> 00:05:11,120 ->> Okay. - -117 -00:05:11,120 --> 00:05:12,250 ->> You know, the bits, right? - -118 -00:05:12,250 --> 00:05:12,590 ->> Okay. - -119 -00:05:12,590 --> 00:05:14,730 ->> So, this is just telling us, it's like a flag - -120 -00:05:14,730 --> 00:05:16,672 -that is telling this book is a best seller, or not. - -121 -00:05:16,672 --> 00:05:17,053 ->> Okay. - -122 -00:05:17,053 --> 00:05:20,920 ->> It's very easy to change this value and make a book a best - -123 -00:05:20,920 --> 00:05:22,880 -seller or not a best seller, than - -124 -00:05:22,880 --> 00:05:26,210 -just creating and destroying instances of these classes. - -125 -00:05:26,210 --> 00:05:27,135 ->> Okay, makes sense. - -126 -00:05:27,135 --> 00:05:32,630 ->> Okay, so at this point, this already looks better, right? Because we have, - -127 -00:05:32,630 --> 00:05:35,590 -less classes, and I think we did, yeah, we - -128 -00:05:35,590 --> 00:05:38,775 -did some serious cleanup. That's good. Okay, so now that - -129 -00:05:38,775 --> 00:05:40,975 -we eliminated some of this, what I would like to - -130 -00:05:40,975 --> 00:05:42,845 -do, as I said, we are going to both clean - -131 -00:05:42,845 --> 00:05:45,222 -up, but also refine. I would like to go - -132 -00:05:45,222 --> 00:05:48,826 -back to our, requirements and see whether we can identify - -133 -00:05:48,826 --> 00:05:52,566 -additional attributes for this, class that maybe are not as - -134 -00:05:52,566 --> 00:05:55,120 -obvious as the one that we saw so far, okay? - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt deleted file mode 100644 index 0a48aae..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt +++ /dev/null @@ -1,352 +0,0 @@ -1 -00:00:00,240 --> 00:00:02,880 -Okay, so let me look at the requirements and - -2 -00:00:05,500 --> 00:00:09,150 -it's something that I can see here that we didn't point out before is that - -3 -00:00:09,150 --> 00:00:13,540 -there seems to be clearly some concept of a due date. And I'm telling you why - -4 -00:00:13,540 --> 00:00:17,610 -I'm saying that because here, for example, I notice that it says when items are - -5 -00:00:17,610 --> 00:00:22,580 -due. We mention overdue several times, so is - -6 -00:00:22,580 --> 00:00:24,410 -this something we need to keep track of? - -7 -00:00:24,410 --> 00:00:27,510 ->> Yeah remember when we used to stamp them on the books? In the stamp pad? - -8 -00:00:27,510 --> 00:00:28,240 ->> Oh yeah yeah yeah! Oh course! - -9 -00:00:28,240 --> 00:00:30,600 ->> Right? Yeah we definitely keep track of, - -10 -00:00:30,600 --> 00:00:32,390 -the system has to keep track of when books are due. - -11 -00:00:32,390 --> 00:00:35,300 ->> Okay. So it seems to me that one good way - -12 -00:00:35,300 --> 00:00:39,660 -of doing that is by basically adding an attribute to the, item. - -13 -00:00:39,660 --> 00:00:40,590 ->> Okay. - -14 -00:00:40,590 --> 00:00:41,910 ->> And I'll just call it due date. - -15 -00:00:41,910 --> 00:00:42,400 ->> Okay. - -16 -00:00:42,400 --> 00:00:45,360 ->> So basically for each item in case it's loaned - -17 -00:00:45,360 --> 00:00:48,315 -there will be this attribute that will contain the value of - -18 -00:00:48,315 --> 00:00:48,520 ->> Okay. - -19 -00:00:48,520 --> 00:00:55,710 ->> Of when, when the item is due. And then, something else that I noticed - -20 -00:00:55,710 --> 00:00:58,734 -here is that down here, it seems like - -21 -00:00:58,734 --> 00:01:00,900 -the requirements are saying that an item can - -22 -00:01:00,900 --> 00:01:04,190 -be renewed only once. So, I guess, that's - -23 -00:01:04,190 --> 00:01:05,933 -something we need to keep track of, right? - -24 -00:01:05,933 --> 00:01:06,056 ->> Yeah. - -25 -00:01:06,056 --> 00:01:06,700 ->> The system needs to know. - -26 -00:01:06,700 --> 00:01:08,360 ->> We have to know whether they've renewed it or not. - -27 -00:01:08,360 --> 00:01:14,132 ->> Okay so, I'll do a similar thing here. I think I want to go and add a an - -28 -00:01:14,132 --> 00:01:19,140 -attribute that we'd call number of times renewed, and add it to the item class. - -29 -00:01:19,140 --> 00:01:19,760 ->> Okay. - -30 -00:01:19,760 --> 00:01:21,140 ->> And this is kind of more generic - -31 -00:01:21,140 --> 00:01:23,180 -than what you need, because here it says only once, but - -32 -00:01:23,180 --> 00:01:25,800 -let's say that in the future you want to allow it to, - -33 -00:01:25,800 --> 00:01:28,690 -kind of renew twice, you'll be able to use these attributes again - -34 -00:01:28,690 --> 00:01:31,090 -because, we can just count how many times it was renewed. Okay? - -35 -00:01:31,090 --> 00:01:31,680 ->> Makes sense. - -36 -00:01:31,680 --> 00:01:35,980 ->> Alright. And one last thing I want to point out. - -37 -00:01:35,980 --> 00:01:38,310 -And this seems obvious but I'm going to check with - -38 -00:01:38,310 --> 00:01:43,150 -you anyways. And seems like there is a basically the - -39 -00:01:43,150 --> 00:01:46,090 -need to keep track of whether an item is checked - -40 -00:01:46,090 --> 00:01:48,210 -out or not. If you look at the text here, - -41 -00:01:48,210 --> 00:01:51,080 -the requirements here, I can see that check out and checked out are - -42 -00:01:51,080 --> 00:01:55,070 -mentioned five times. So, I'm assuming that that's something also - -43 -00:01:55,070 --> 00:01:58,080 -that we want to know about an item, whether it's checked out or not. - -44 -00:01:58,080 --> 00:01:59,970 ->> We have to keep track of whether they're checked out. - -45 -00:01:59,970 --> 00:02:01,930 ->> Okay, so I'll add an - -46 -00:02:01,930 --> 00:02:04,340 -additional attribute there. So I'm going to again go - -47 -00:02:04,340 --> 00:02:06,480 -back to the diagram and I'm - -48 -00:02:06,480 --> 00:02:10,139 -just going to write here also the checked out attribute. - -49 -00:02:12,260 --> 00:02:14,590 -And, I think that's it as far as I'm - -50 -00:02:14,590 --> 00:02:16,330 -concerned. Is there anything that you think is missing? - -51 -00:02:16,330 --> 00:02:21,077 ->> Well, I do have a question. Would checked out, - -52 -00:02:21,077 --> 00:02:27,140 -better not be the case that someone can check out a reference book. - -53 -00:02:27,140 --> 00:02:28,400 ->> Oh, I see, I see. - -54 -00:02:28,400 --> 00:02:30,120 ->> Okay. I mean, it's only the books and - -55 -00:02:30,120 --> 00:02:31,780 -the audio visual material that can be checked out. - -56 -00:02:31,780 --> 00:02:37,790 ->> Right, right, right. Okay, so I, I guess, well the way I will fix that is, - -57 -00:02:37,790 --> 00:02:42,300 -I'll probably put yet another attribute in the item class, and I'll - -58 -00:02:42,300 --> 00:02:45,860 -call it loanable. And basically, this attribute is just telling us whether - -59 -00:02:45,860 --> 00:02:49,580 -an item is loanable or not. So, when it's not true and - -60 -00:02:49,580 --> 00:02:53,480 -loanable is not on. Basically, that item can be checked out. - -61 -00:02:53,480 --> 00:02:55,174 ->> Okay. And, the system would know this. - -62 -00:02:55,174 --> 00:02:56,450 ->> The system will know that. - -63 -00:02:56,450 --> 00:02:57,160 ->> And prevent it from happening. - -64 -00:02:57,160 --> 00:02:58,240 ->> And prevent it from happening. Okay? - -65 -00:02:58,240 --> 00:02:58,750 ->> Alright. - -66 -00:02:58,750 --> 00:03:02,918 ->> Perfect. So, we're going to do that and, any other objections, - -67 -00:03:02,918 --> 00:03:04,035 -any other? - -68 -00:03:04,035 --> 00:03:05,730 ->> No, that was my question. - -69 -00:03:05,730 --> 00:03:08,040 ->> Okay, perfect, so what I'm going to do next, I - -70 -00:03:08,040 --> 00:03:11,130 -mean, I haven't mentioned that yet, but you know classes right - -71 -00:03:11,130 --> 00:03:12,890 -now we just looked at the attributes right that give - -72 -00:03:12,890 --> 00:03:16,140 -you sort of the state of the class. And there's something - -73 -00:03:16,140 --> 00:03:19,185 -else, there's a second part of the class that is kind of - -74 -00:03:19,185 --> 00:03:22,520 -an orthogonal aspect, which is what the class can do. And we - -75 -00:03:22,520 --> 00:03:25,640 -call those operations. So normally these kinds also have operations, I - -76 -00:03:25,640 --> 00:03:28,000 -guess you know it would make sense to you as well. - -77 -00:03:28,000 --> 00:03:30,070 -And one way, one very natural way to - -78 -00:03:30,070 --> 00:03:33,310 -identify operations is to look at the requirements and - -79 -00:03:33,310 --> 00:03:36,850 -look for verbs. Because verbs associated with an item - -80 -00:03:36,850 --> 00:03:38,480 -will tell you basically what the item can do. - -81 -00:03:38,480 --> 00:03:38,900 ->> Okay. - -82 -00:03:38,900 --> 00:03:41,250 ->> So I, I'd like to go back to the requirements and - -83 -00:03:41,250 --> 00:03:45,110 -start, the same way in which we underlined, nouns, we're going to underline - -84 -00:03:45,110 --> 00:03:49,340 -verbs and we're going to see which ones of those verbs actually represent - -85 -00:03:49,340 --> 00:03:53,120 -actions that we want to represent explicitly, we want to model explicitly in - -86 -00:03:53,120 --> 00:03:53,950 -our class diagram. - -87 -00:03:53,950 --> 00:03:54,490 ->> Okay. - -88 -00:03:54,490 --> 00:03:54,750 ->> Okay. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt deleted file mode 100644 index 74ca388..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt +++ /dev/null @@ -1,304 +0,0 @@ -1 -00:00:00,460 --> 00:00:03,276 ->> And before we get started actually, I'd like to mention that there's - -2 -00:00:03,276 --> 00:00:05,124 -just, you know, FYI, there's different kinds - -3 -00:00:05,124 --> 00:00:06,708 -of verbs because what I'm looking for - -4 -00:00:06,708 --> 00:00:10,099 -is really action verbs. So verb, verbs that clearly express an action that - -5 -00:00:10,099 --> 00:00:13,580 -can tell me that, you know, what, for example, an item could do, 'kay? - -6 -00:00:13,580 --> 00:00:13,820 ->> Okay? - -7 -00:00:13,820 --> 00:00:16,620 ->> Not the verbs that represent, for example, relationships, 'kay? - -8 -00:00:16,620 --> 00:00:17,076 ->> Okay. - -9 -00:00:17,076 --> 00:00:19,080 ->> So, and the, there, and the ones - -10 -00:00:19,080 --> 00:00:22,020 -that I've identified und, underlined here actually, I, - -11 -00:00:22,020 --> 00:00:26,158 -I underlined complete sentences so that you kind of we can look at the verbs in - -12 -00:00:26,158 --> 00:00:29,150 -in context. And the first one is this - -13 -00:00:29,150 --> 00:00:30,850 -sentence that says that the library may need - -14 -00:00:30,850 --> 00:00:33,190 -to know or to calculate the items a - -15 -00:00:33,190 --> 00:00:35,790 -patron has checked out, when they are due, and - -16 -00:00:35,790 --> 00:00:38,860 -any outstanding overdue fines. So I, I will - -17 -00:00:38,860 --> 00:00:41,430 -imagine that this is representing a situation in - -18 -00:00:41,430 --> 00:00:44,224 -which you bring up a patron's record and - -19 -00:00:44,224 --> 00:00:46,131 -you start looking up this information. Is that [CROSSTALK] - -20 -00:00:46,131 --> 00:00:50,970 ->> The, the patron often wants to know what they have currently checked out. - -21 -00:00:50,970 --> 00:00:51,044 ->> Oh, - -22 -00:00:51,044 --> 00:00:51,282 -alright. - -23 -00:00:51,282 --> 00:00:53,260 ->> Or when are their due or how much they're owed or. - -24 -00:00:53,260 --> 00:00:55,100 ->> Oh, in fact, and then now that you mentioned it, - -25 -00:00:55,100 --> 00:00:57,500 -I think you sent me. One of the scenarios you sent - -26 -00:00:57,500 --> 00:00:59,400 -me had to do with that, right, with the patron coming - -27 -00:00:59,400 --> 00:01:01,930 -in and asking for this information. So yeah, and it makes - -28 -00:01:01,930 --> 00:01:05,025 -a lot of sense. So what I'm going to do, I'm going to - -29 -00:01:05,025 --> 00:01:10,520 -model this by adding this three operations to the patron method. - -30 -00:01:10,520 --> 00:01:13,410 -The first one, I'm going to call, itemsCheckedOut and, basically, it's an - -31 -00:01:13,410 --> 00:01:16,520 -operation, but you don't need to, you know, understand the implementation - -32 -00:01:16,520 --> 00:01:18,820 -details, but when you call this operation, it will - -33 -00:01:18,820 --> 00:01:21,770 -give you back exactly this information, so the items - -34 -00:01:21,770 --> 00:01:23,864 -that are checked out by that patron. The second - -35 -00:01:23,864 --> 00:01:25,965 -one, I'm going to call it whenDue. That will tell you - -36 -00:01:25,965 --> 00:01:29,080 -basically when a, when an item is due. And - -37 -00:01:29,080 --> 00:01:32,550 -the third one is going to be called the outstandingOverdueFines and, - -38 -00:01:32,550 --> 00:01:34,510 -you know, as the name says, it's going to tell - -39 -00:01:34,510 --> 00:01:36,860 -you what are the outstanding overdue fines for that patron. - -40 -00:01:36,860 --> 00:01:37,300 ->> Okay. - -41 -00:01:37,300 --> 00:01:39,306 ->> And as you might notice I mean, - -42 -00:01:39,306 --> 00:01:41,843 -I, I'm going to separate the, the, the attributes - -43 -00:01:41,843 --> 00:01:44,085 -from the operations by having a separate kind - -44 -00:01:44,085 --> 00:01:46,386 -of subrectangle so, in this way, it's clear - -45 -00:01:46,386 --> 00:01:48,274 -what is attribute and what is, what is - -46 -00:01:48,274 --> 00:01:51,000 -an attribute and what's an, what's an operation. - -47 -00:01:51,000 --> 00:01:51,420 ->> Gotcha. - -48 -00:01:51,420 --> 00:01:57,540 ->> And let me see then. Okay, for the - -49 -00:01:57,540 --> 00:02:00,040 -second one you can see that that patron can check - -50 -00:02:00,040 --> 00:02:02,990 -out books and audio visual materials. So I guess, - -51 -00:02:02,990 --> 00:02:06,880 -similarly you, you build kind of the record for a patron. - -52 -00:02:06,880 --> 00:02:09,150 -The patron will give you an item and you will record - -53 -00:02:09,150 --> 00:02:11,020 -the fact that the patron is kind of checking it out. - -54 -00:02:11,020 --> 00:02:15,730 ->> Right. And is that operation related to this, - -55 -00:02:15,730 --> 00:02:18,150 -the checked out attribute that we did a minute ago? - -56 -00:02:18,150 --> 00:02:21,495 ->> It is actually because what will happen then again, you know, if we jump - -57 -00:02:21,495 --> 00:02:24,975 -ahead a little bit would be that every time you invoke this operation. So I'm - -58 -00:02:24,975 --> 00:02:26,810 -going to represent this as a checkOut operation - -59 -00:02:26,810 --> 00:02:28,896 -for the patron. Every time you invoke this, - -60 -00:02:28,896 --> 00:02:31,920 -you will also have to say something about the item and so we will also - -61 -00:02:31,920 --> 00:02:35,700 -flip kind of that that, that build information in the, in the, in the item. - -62 -00:02:35,700 --> 00:02:36,904 ->> Okay. - -63 -00:02:36,904 --> 00:02:39,680 ->> Mm, 'kay? And, and finally, here, I can see that - -64 -00:02:39,680 --> 00:02:42,660 -a patron can request a book or an audio video item Is - -65 -00:02:42,660 --> 00:02:46,240 -not currently in. So I guess this is referring to items that - -66 -00:02:46,240 --> 00:02:48,980 -are already checked out but for which there is interest. Is that? - -67 -00:02:48,980 --> 00:02:54,770 ->> Right. So, particularly, the popular items the patrons want to get on - -68 -00:02:54,770 --> 00:02:57,140 -the list so that they get notified when it comes back in and. - -69 -00:02:57,140 --> 00:02:57,204 ->> Oh. - -70 -00:02:57,204 --> 00:02:57,730 ->> And check it out. - -71 -00:02:57,730 --> 00:03:00,570 ->> I see. I see. Okay. Then I'm going to do - -72 -00:03:00,570 --> 00:03:04,400 -the same thing here. I'm, I'm going to add this method, - -73 -00:03:04,400 --> 00:03:08,510 -which I'm going to call request and I'm going to put it - -74 -00:03:08,510 --> 00:03:11,340 -here in the list of the methods in the list. - -75 -00:03:11,340 --> 00:03:11,450 ->> Okay. - -76 -00:03:11,450 --> 00:03:12,810 ->> Of operations for the, for the patron, okay? - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt deleted file mode 100644 index d47ef80..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt +++ /dev/null @@ -1,488 +0,0 @@ -1 -00:00:00,420 --> 00:00:02,740 -OK I like the way this class diagram is - -2 -00:00:02,740 --> 00:00:05,850 -coming along. So at this point I think we - -3 -00:00:05,850 --> 00:00:08,300 -have all the classes that we need. For each - -4 -00:00:08,300 --> 00:00:12,250 -class we specified the attributes or the characteristics of the - -5 -00:00:12,250 --> 00:00:15,150 -class. And we also specified the operations so we - -6 -00:00:15,150 --> 00:00:18,710 -know what the class can do And, I like to - -7 -00:00:18,710 --> 00:00:22,110 -kind of move forward on this, but I first - -8 -00:00:22,110 --> 00:00:25,690 -want to see that you're fine with the class structure. - -9 -00:00:25,690 --> 00:00:27,500 -So that's the way the class structure is going - -10 -00:00:27,500 --> 00:00:29,880 -to be in terms of attributes and operations. So anything - -11 -00:00:29,880 --> 00:00:34,910 -that bothers you? Well, one thing I didn't understand - -12 -00:00:34,910 --> 00:00:38,090 -is how come you put check out over where - -13 -00:00:38,090 --> 00:00:40,350 -the patron when it's really the item being checked - -14 -00:00:40,350 --> 00:00:46,280 -out? Right. Okay. So that actually is you know, is a perfect - -15 -00:00:46,280 --> 00:00:48,030 -segway for the next thing that really wanted - -16 -00:00:48,030 --> 00:00:50,780 -to model. Because what you're talking about is basically a - -17 -00:00:50,780 --> 00:00:54,100 -relationship between two classes which is something we haven't touched on - -18 -00:00:54,100 --> 00:00:57,582 -yet. So we haven't, haven't looked at individual classes. But now, it - -19 -00:00:57,582 --> 00:01:00,720 -is typical, now we are looking more at requirements, we're starting to - -20 -00:01:00,720 --> 00:01:04,800 -find more things about our system, and what you're pointed out right - -21 -00:01:04,800 --> 00:01:08,370 -now is the fact that patron and item are somehow related. So - -22 -00:01:08,370 --> 00:01:11,020 -this checkout operation is not really something that belongs only on in - -23 -00:01:11,020 --> 00:01:13,660 -the patron, because it needs to know about the item. And it - -24 -00:01:13,660 --> 00:01:15,790 -doesn't belong only on the item because it needs to know about - -25 -00:01:15,790 --> 00:01:19,640 -the patron. So, it's something that associates the patron and - -26 -00:01:19,640 --> 00:01:22,600 -the item. Okay. And that's exactly the way we call - -27 -00:01:22,600 --> 00:01:24,630 -in the UML which is the notation that we're using - -28 -00:01:24,630 --> 00:01:29,060 -here this kind of relationship. So, we're going to represent that - -29 -00:01:29,060 --> 00:01:32,820 -by drawing a line between these two classes that tells - -30 -00:01:32,820 --> 00:01:35,220 -us there is an association. And we're also going to - -31 -00:01:35,220 --> 00:01:37,890 -give a name to this. Since this refers to the - -32 -00:01:37,890 --> 00:01:40,280 -fact of checking out items. We're just going to call - -33 -00:01:40,280 --> 00:01:43,794 -it, checkout. Gotcha. And notice that this basically you - -34 -00:01:43,794 --> 00:01:48,500 -know,eventually will end up kind of replacing this attribute. Because - -35 -00:01:48,500 --> 00:01:51,780 -the existence of this association will tell us that - -36 -00:01:51,780 --> 00:01:53,932 -this is checked out. We're, we're not going to, you know, - -37 -00:01:53,932 --> 00:01:55,428 -do it right now, but in the final cleanup - -38 -00:01:55,428 --> 00:01:58,750 -or the diagram, this name will disappear. Okay. Okay. - -39 -00:01:58,750 --> 00:02:02,190 -And so since we started talking about relationships and - -40 -00:02:02,190 --> 00:02:05,280 -associations, is there any other kind of relationship that you - -41 -00:02:05,280 --> 00:02:08,805 -see here? Well, what you just did with checked - -42 -00:02:08,805 --> 00:02:12,009 -out is, it seems similar to the whole issue - -43 -00:02:12,009 --> 00:02:16,090 -of requests. It is, it is. So a request - -44 -00:02:16,090 --> 00:02:19,580 -is something else that happens in both, you know, in - -45 -00:02:19,580 --> 00:02:22,090 -the patron and in the item, it involves both. - -46 -00:02:22,090 --> 00:02:24,070 -And in fact in a request, I would definitely - -47 -00:02:24,070 --> 00:02:26,950 -represent this as an additional association. So I will - -48 -00:02:26,950 --> 00:02:30,730 -just draw an another line between these two that represent - -49 -00:02:30,730 --> 00:02:33,804 -that specific kind of relationship and I will call it - -50 -00:02:33,804 --> 00:02:37,330 -request. So that indicates that this association refers to a - -51 -00:02:37,330 --> 00:02:41,660 -request that also connects the patron with an item. Okay. - -52 -00:02:41,660 --> 00:02:45,710 -And, let's see. Any, anything else that jumps at you? - -53 -00:02:45,710 --> 00:02:47,590 -Yeah, well, how about all these ones down at the - -54 -00:02:47,590 --> 00:02:50,080 -bottom? I mean book and item's got to be - -55 -00:02:50,080 --> 00:02:52,920 -related, right? A book is a kind of item, And - -56 -00:02:52,920 --> 00:02:55,860 -audiovisual... are there associations between them? Can you repeat - -57 -00:02:55,860 --> 00:02:58,790 -that, you said that the book, yeah? Is - -58 -00:02:58,790 --> 00:03:02,550 -a kind of item. Perfect, that's exactly what we're - -59 -00:03:02,550 --> 00:03:04,700 -modeling next, which is, this, what we call the - -60 -00:03:04,700 --> 00:03:07,900 -is-a relationship. So you said, a book is an item? - -61 -00:03:07,900 --> 00:03:13,346 -A book is an item. And, we can model that in the diagram. So, we do that - -62 -00:03:13,346 --> 00:03:17,409 -using another kind of relationship between the classes. So - -63 -00:03:17,409 --> 00:03:21,210 -we're going to represent that as a specialization we call it. - -64 -00:03:21,210 --> 00:03:24,890 -And, a specialization is indicated in this way. Okay? - -65 -00:03:24,890 --> 00:03:27,410 -With this arrow at the end, so a solid - -66 -00:03:27,410 --> 00:03:30,800 -with this kind of arrow at the end. And - -67 -00:03:30,800 --> 00:03:34,160 -we can do the same for book, magazine, reference book - -68 -00:03:34,160 --> 00:03:36,200 -and audiovisual material. So we're all going to connect, - -69 -00:03:36,200 --> 00:03:37,950 -we're going to connect all of them, to the - -70 -00:03:37,950 --> 00:03:43,190 -item, using the same kind of connection. And now - -71 -00:03:43,190 --> 00:03:47,200 -that we have connected all these four, with item - -72 -00:03:47,200 --> 00:03:50,620 -and indicated them in subclasses. That's something else that we can - -73 -00:03:50,620 --> 00:03:54,370 -do. So we can make this kind of cleaner. And I'll - -74 -00:03:54,370 --> 00:03:56,360 -tell you what I mean by that. So now we have - -75 -00:03:56,360 --> 00:04:00,190 -this loanable attribute that refers to item, but it seems to - -76 -00:04:00,190 --> 00:04:03,100 -me from what you were saying before, that loanable is not - -77 -00:04:03,100 --> 00:04:05,490 -really an attribute of an item. Right? It's more of a - -78 -00:04:05,490 --> 00:04:09,240 -characteristic of the type of item. Right. Is that right? Right. - -79 -00:04:09,240 --> 00:04:13,120 -Books, and audio/visual are loanable but the others aren't. - -80 -00:04:13,120 --> 00:04:16,450 -Okay, and so representing it here, it's okay to, - -81 -00:04:16,450 --> 00:04:20,579 -it will work. But it's not really right so from - -82 -00:04:20,579 --> 00:04:23,590 -the style standpoint it doesn't really you know, - -83 -00:04:23,590 --> 00:04:26,100 -it's not the best way of modeling this. What we're going to - -84 -00:04:26,100 --> 00:04:30,130 -do instead, we're going to use this specialization relationship to make - -85 -00:04:30,130 --> 00:04:33,000 -that more explicit. To make it cleaner. Okay, so what - -86 -00:04:33,000 --> 00:04:35,300 -I'm doing here is I'm going to take this hierarchy - -87 -00:04:35,300 --> 00:04:38,130 -of classes, this is just on two levels now, and I'm - -88 -00:04:38,130 --> 00:04:40,380 -going to kind of make it a little richer. - -89 -00:04:40,380 --> 00:04:43,470 -So I'm going to add an intermediate set of - -90 -00:04:43,470 --> 00:04:45,756 -classes. And in particular I'm going to have these two - -91 -00:04:45,756 --> 00:04:48,306 -classes that I'm going to call non loanable item and loanable - -92 -00:04:48,306 --> 00:04:51,790 -item. So, they're both items but they tell me - -93 -00:04:51,790 --> 00:04:55,490 -clearly that some items are loanable and some items - -94 -00:04:55,490 --> 00:04:59,392 -are not. Okay. Okay. And then I'm simply going to - -95 -00:04:59,392 --> 00:05:03,192 -put book and audio video material as subclasses of loanable - -96 -00:05:03,192 --> 00:05:07,980 -item and reference book and magazine as subclasses of non-loanable - -97 -00:05:07,980 --> 00:05:10,510 -item. So, if we look at this diagram now it's - -98 -00:05:10,510 --> 00:05:13,650 -pretty clear what is loanable and what is not. And - -99 -00:05:13,650 --> 00:05:16,070 -it's actually is a very clean, much cleaner - -100 -00:05:16,070 --> 00:05:18,980 -design. And, and I see you've, gotten rid of - -101 -00:05:18,980 --> 00:05:21,560 -the loanable attribute, too. I did. Because at - -102 -00:05:21,560 --> 00:05:24,130 -this point this is already represented by the fact of - -103 -00:05:24,130 --> 00:05:28,570 -having these two classes. And actually, something else that I did - -104 -00:05:28,570 --> 00:05:31,820 -is that I moved all these attributes, value, - -105 -00:05:31,820 --> 00:05:34,220 -due date, renewed and checked out, that makes - -106 -00:05:34,220 --> 00:05:37,452 -sense only for loanable item. From item to - -107 -00:05:37,452 --> 00:05:40,450 -loanable item. So at this point, this really - -108 -00:05:40,450 --> 00:05:42,600 -is telling me that, you know, these - -109 -00:05:42,600 --> 00:05:46,410 -characteristics are just meaningful for the loanable item, - -110 -00:05:46,410 --> 00:05:53,800 -and not for the other ones. Well, speaking of that, the way that you got the - -111 -00:05:53,800 --> 00:05:57,270 -lines going in the diagram here is you still have - -112 -00:05:57,270 --> 00:05:59,920 -request and checked out going to item, even though you - -113 -00:05:59,920 --> 00:06:02,610 -can't request non loanable Items. You can't check out non - -114 -00:06:02,610 --> 00:06:05,630 -loanable Items. Oh, you were right actually. You got me on - -115 -00:06:05,630 --> 00:06:10,940 -that one. You're exactly right. So this associations are between - -116 -00:06:10,940 --> 00:06:13,440 -the two wrong classes. So, I guess, at this point, - -117 -00:06:13,440 --> 00:06:16,450 -you can probably go and fix the diagram yourself. Well, - -118 -00:06:16,450 --> 00:06:19,120 -can we just make the lines go from patron to loanable - -119 -00:06:19,120 --> 00:06:21,640 -item instead of to item? That's exactly the way in which we - -120 -00:06:21,640 --> 00:06:25,550 -are going to fix it. So, we're going to move these two associations down - -121 -00:06:25,550 --> 00:06:29,190 -here. And at this point, this will represent the right relationships in - -122 -00:06:29,190 --> 00:06:31,850 -the, in the diagram, and in the system. Makes sense to me. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt deleted file mode 100644 index 44f9165..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt +++ /dev/null @@ -1,188 +0,0 @@ -1 -00:00:00,350 --> 00:00:03,460 -Spencer, I gotta tell you, I'm impressed. - -2 -00:00:03,460 --> 00:00:05,441 -You're getting very good at this. So, why - -3 -00:00:05,441 --> 00:00:07,190 -don't you go wild and continue, there - -4 -00:00:07,190 --> 00:00:09,240 -anything else you think we can improve here? - -5 -00:00:09,240 --> 00:00:11,800 ->> Well something was bothering - -6 -00:00:11,800 --> 00:00:14,600 -me, that what happens if there's more - -7 -00:00:14,600 --> 00:00:19,110 -than one book with the same title and somebody puts in a request? - -8 -00:00:19,110 --> 00:00:25,360 ->> Oh, I see. That's a good point. So basically what you are telling me is - -9 -00:00:25,360 --> 00:00:28,630 -there's kind of a difference between an item and - -10 -00:00:28,630 --> 00:00:30,660 -the title, so the title is kind of a more - -11 -00:00:30,660 --> 00:00:32,940 -general concept, in a sense. So if you can - -12 -00:00:32,940 --> 00:00:35,830 -have multiple copies of a given title, is that right? - -13 -00:00:35,830 --> 00:00:38,460 ->> Yeah, we have five copies of Tom Sawyer, and the - -14 -00:00:38,460 --> 00:00:42,810 -persons, the patrons, really putting in a request for any Tom Sawyer. - -15 -00:00:42,810 --> 00:00:45,332 ->> They don't want like copy number three of Tom Sawyer, right? They want, - -16 -00:00:45,332 --> 00:00:50,530 -they want to read Tom Sawyer. Okay and I can represent that. So, in which - -17 -00:00:50,530 --> 00:00:55,230 -I suggest we do that, and you can tell me whether it makes sense to you is by - -18 -00:00:55,230 --> 00:00:59,650 -introducing an additional class, which I call Title. And - -19 -00:00:59,650 --> 00:01:02,614 -that represents exactly the concept that you're mentioning. So - -20 -00:01:02,614 --> 00:01:04,666 -this is a title which represents some - -21 -00:01:04,666 --> 00:01:09,180 -specific content. That is not related to a specific - -22 -00:01:09,180 --> 00:01:12,110 -physical element. Like it can be rated to multiple, - -23 -00:01:12,110 --> 00:01:15,520 -physical elements. So basically I'm going to create this title. - -24 -00:01:15,520 --> 00:01:18,100 -And then I'm going to create a relationship between - -25 -00:01:18,100 --> 00:01:20,500 -the title and the item. And what - -26 -00:01:20,500 --> 00:01:22,530 -the relationship is telling me, the the association - -27 -00:01:22,530 --> 00:01:25,512 -between these two in this case. Is an association, - -28 -00:01:25,512 --> 00:01:30,320 -that we call aggregation. So it's a special kind of association, that basically - -29 -00:01:30,320 --> 00:01:35,450 -indicates that an item of this type, so a title can - -30 -00:01:35,450 --> 00:01:40,692 -consist of a multiple elements of this type of multiple items. - -31 -00:01:40,692 --> 00:01:42,710 -So it's telling me that one title can - -32 -00:01:42,710 --> 00:01:45,700 -consist of multiple items, and I'm going to indicate - -33 -00:01:45,700 --> 00:01:48,560 -it with this annotation, which is a this - -34 -00:01:49,700 --> 00:01:53,200 -diamond at the top of the association. - -35 -00:01:53,200 --> 00:01:55,570 ->> And so we can move our request - -36 -00:01:55,570 --> 00:01:57,510 -line, up from loanable item to - -37 -00:01:57,510 --> 00:01:59,010 -title, because that's what they're really requesting. - -38 -00:01:59,010 --> 00:02:00,710 ->> Definitely, definitely, and in fact, - -39 -00:02:00,710 --> 00:02:02,420 -you know, that represents exactly the situation - -40 -00:02:02,420 --> 00:02:06,350 -that you are mentioning, at this point when the patron makes a request. - -41 -00:02:06,350 --> 00:02:12,240 -It makes a request to a title and not to a loanable item. And then, and - -42 -00:02:12,240 --> 00:02:15,420 -when the actual loan will take place, - -43 -00:02:15,420 --> 00:02:18,420 -then that will be connected to a specific item. - -44 -00:02:18,420 --> 00:02:20,090 ->> Right. Okay that makes sense. - -45 -00:02:20,090 --> 00:02:20,388 ->> Makes sense? - -46 -00:02:20,388 --> 00:02:20,779 ->> Yeah. - -47 -00:02:20,779 --> 00:02:21,214 ->> Okay, good. - 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 deleted file mode 100644 index 1e47ea6..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt +++ /dev/null @@ -1,328 +0,0 @@ -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. - diff --git a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt deleted file mode 100644 index 0dbfccd..0000000 --- a/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt +++ /dev/null @@ -1,196 +0,0 @@ -1 -00:00:00,140 --> 00:00:03,202 -Okay. So this is what I've done as you see, - -2 -00:00:03,202 --> 00:00:06,130 -it looks a little nicer than it was before. And I didn't - -3 -00:00:06,130 --> 00:00:08,530 -really change that much. I just made a few changes, so - -4 -00:00:08,530 --> 00:00:11,560 -I just wanted to point them out to you, so that you - -5 -00:00:11,560 --> 00:00:13,690 -know what they are. And the main thing, one of the - -6 -00:00:13,690 --> 00:00:18,210 -main things I did is really to introduce these derived attributes. So - -7 -00:00:18,210 --> 00:00:19,860 -these are attributes that are basically - -8 -00:00:19,860 --> 00:00:22,520 -computed. Based on some other attributes. - -9 -00:00:22,520 --> 00:00:26,010 -Okay, they don't have a value themselves, but their value is computed. - -10 -00:00:26,010 --> 00:00:28,900 -And I used two. The first one is age. So - -11 -00:00:28,900 --> 00:00:31,930 -basically we know the age of the patron based on - -12 -00:00:31,930 --> 00:00:34,920 -the birthday, of the patron. So you guys, I don't - -13 -00:00:34,920 --> 00:00:37,150 -know if you have that information currently in the system. - -14 -00:00:37,150 --> 00:00:38,480 ->> No, we'll have to add that to the - -15 -00:00:38,480 --> 00:00:40,280 -form patrons fill out, when they get their card. - -16 -00:00:40,280 --> 00:00:42,255 ->> Is that, that an issue? Can you do it? - -17 -00:00:42,255 --> 00:00:44,130 ->> No yes, we, we can easily do that. - -18 -00:00:44,130 --> 00:00:46,670 ->> Okay, so then, perfect. So we'll do it that way. I think it's - -19 -00:00:46,670 --> 00:00:51,310 -a, in a little cleaner. And similarly, since you told me that the fine - -20 -00:00:51,310 --> 00:00:54,480 -was computed based on the amount of days that an - -21 -00:00:54,480 --> 00:00:58,310 -item was late. The patron was late returning the item, then I - -22 -00:00:58,310 --> 00:01:02,010 -also added this as a derived attribute that is computed based on - -23 -00:01:02,010 --> 00:01:05,140 -the due date and when the item is actually returned. - -24 -00:01:05,140 --> 00:01:05,780 ->> Makes sense. - -25 -00:01:05,780 --> 00:01:08,389 ->> Makes sense? Okay. And the rest - -26 -00:01:08,389 --> 00:01:10,590 -is kind of really minor things. So the, the only one I - -27 -00:01:10,590 --> 00:01:14,340 -want to point out is I didn't, you know, discuss that with - -28 -00:01:14,340 --> 00:01:17,260 -you before, but I added this, which is called cardinality - -29 -00:01:17,260 --> 00:01:20,700 -for some of these relationships. And what they say is basically - -30 -00:01:20,700 --> 00:01:25,360 -is how many elements are involved in the relationship. - -31 -00:01:25,360 --> 00:01:26,580 ->> So, you mean the stars? - -32 -00:01:26,580 --> 00:01:27,960 ->> Yeah, like the stars and the one... - -33 -00:01:27,960 --> 00:01:28,290 ->> Okay. - -34 -00:01:28,290 --> 00:01:31,380 ->> Here for example, this is telling you that for each item there - -35 -00:01:31,380 --> 00:01:35,490 -is only one title. And that for each title, there are multiple items. - -36 -00:01:35,490 --> 00:01:36,490 ->> So, star means many. - -37 -00:01:36,490 --> 00:01:37,716 ->> Stars mean many, yeah. - -38 -00:01:37,716 --> 00:01:39,045 ->> Okay, go you. - -39 -00:01:39,045 --> 00:01:42,321 ->> Sorry that's kind of computer science lingo - we use the star - -40 -00:01:42,321 --> 00:01:45,500 -for that kind of stuff. And, similarly, for the patron, it's - -41 -00:01:45,500 --> 00:01:48,510 -telling me that, you know, each patron can have multiple, can - -42 -00:01:48,510 --> 00:01:52,550 -request multiple titles, and that the same title can be requested - -43 -00:01:52,550 --> 00:01:55,650 -by multiple patrons, which I think is the way the system works. - -44 -00:01:55,650 --> 00:01:59,080 ->> Right. So except for these minor changes, - -45 -00:01:59,080 --> 00:02:01,850 -we already had a pretty good model in our hands, so - -46 -00:02:01,850 --> 00:02:04,620 -I think is a, we can finalize this and then just - -47 -00:02:04,620 --> 00:02:07,350 -move to the low level design and then implementation, and be - -48 -00:02:07,350 --> 00:02:07,970 -done with the system. - -49 -00:02:07,970 --> 00:02:08,979 ->> Sounds good. - -- cgit 1.4.1