about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles')
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt88
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt104
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt579
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt535
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt352
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt304
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt488
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt188
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/8 - Refining the Class Diagram - lang_en.srt328
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt196
10 files changed, 3162 insertions, 0 deletions
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
new file mode 100644
index 0000000..f6386ed
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/1 - Introduction - lang_en.srt
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 0000000..cc76d09
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/10 - Debriefing - lang_en.srt
@@ -0,0 +1,104 @@
+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
new file mode 100644
index 0000000..909fb2d
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/2 - Analyzing Requirements - lang_en.srt
@@ -0,0 +1,579 @@
+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
new file mode 100644
index 0000000..271c2fd
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/3 - Refining Classes and Attributes - lang_en.srt
@@ -0,0 +1,535 @@
+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
new file mode 100644
index 0000000..0a48aae
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/4 - Adding Attributes - lang_en.srt
@@ -0,0 +1,352 @@
+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
new file mode 100644
index 0000000..74ca388
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/5 - Identifying Operations - lang_en.srt
@@ -0,0 +1,304 @@
+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
new file mode 100644
index 0000000..d47ef80
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt
@@ -0,0 +1,488 @@
+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
new file mode 100644
index 0000000..44f9165
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/7 - Refining Relationships - lang_en.srt
@@ -0,0 +1,188 @@
+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
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.
+
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
new file mode 100644
index 0000000..0dbfccd
--- /dev/null
+++ b/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/9 - Final Considerations - lang_en.srt
@@ -0,0 +1,196 @@
+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.
+