about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt')
-rw-r--r--usth/ICT2.7/P3L2 A Tale of Analysis and Design Subtitles/6 - Adding Relationships - lang_en.srt488
1 files changed, 488 insertions, 0 deletions
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.
+