WEBVTT 00:10.330 --> 00:12.480 So good, we're making very good progress here. 00:12.520 --> 00:17.620 So now I'm going to talk about the last element of humor that we're using in this course, and that's 00:17.620 --> 00:20.590 packages, as I said, you know, is very large. 00:20.890 --> 00:24.430 And there's loads of stuff that we are talking about in this course. 00:24.700 --> 00:28.390 So it's kind of only the core features that we talk about and use. 00:29.560 --> 00:32.980 So this is packages and actually they are so important, actually. 00:32.980 --> 00:36.610 So I'm going to have a whole section about packaging your model in the end. 00:36.790 --> 00:41.320 But we'll take the ones we have actually tried actually creating some models because they have something 00:41.320 --> 00:41.830 to package. 00:42.160 --> 00:44.200 But just now we're going to talk about this syntax and. 00:45.520 --> 00:53.110 So packages are used to decompose large animal models, so you we talked about that, you think about 00:53.110 --> 00:57.250 concepts in terms of systems of concepts or networks of concepts. 00:57.270 --> 01:00.470 We talk about net networks of intentional states and so on. 01:00.850 --> 01:07.380 So you already have kind of a notion about which concepts relate to each other more or less. 01:07.780 --> 01:15.110 And if you have loads of concepts in your model classes in your model, then you might need to start. 01:16.030 --> 01:22.380 Then you might need to start decomposing into smaller chunks and then you use packages. 01:22.900 --> 01:24.240 So here's an example. 01:24.250 --> 01:31.290 So you might have the hammer plank and the activity of hammering and they all relate to maybe the carpentering. 01:31.810 --> 01:33.940 So then you can have a package call that. 01:34.930 --> 01:40.240 And they are then used to handle the complexity and modify ability of the model by decomposing it into 01:40.240 --> 01:47.680 smaller chunks and thereby handling relations and dependencies between packages instead of between simple 01:47.680 --> 01:52.240 classes so the packages don't depend on each other. 01:52.330 --> 01:56.440 So you will have what is called dependencies was actually a third type of relation. 01:56.620 --> 02:01.990 So there are basically three types of relations that we talked about now are associations which are 02:01.990 --> 02:06.010 instantiated links, generalizations and dependencies. 02:06.310 --> 02:12.910 So dependencies you have dependencies between packages and dependencies is a dotted line with an open 02:12.910 --> 02:14.110 arrow UML. 02:15.730 --> 02:21.190 The direction under dependency is derived directly from the ingoing elements, relationships and what 02:21.190 --> 02:21.890 I mean with that. 02:21.910 --> 02:22.900 So take an example. 02:22.910 --> 02:24.640 So we have the three packages here. 02:25.000 --> 02:30.030 The dependencies are are a function of the ingoing elements. 02:30.310 --> 02:34.960 So here we have a class that is in association with another class, but they're in the same package 02:34.960 --> 02:37.510 and hence you don't need an associate dependency here. 02:38.200 --> 02:44.920 But then that class have a relation which is in this case, a generalization with yet another class, 02:45.070 --> 02:47.200 and that is going in the downward direction. 02:47.200 --> 02:49.810 And hence the dependency will have that direction as well. 02:50.510 --> 02:55.980 And then we have a fourth class which have an association from the first another class from the upper 02:55.990 --> 03:00.730 package, and that is have a navigability in that direction as well. 03:00.850 --> 03:04.860 And hence they would also have a dependency going that direction. 03:05.110 --> 03:11.110 And then lastly, we have an association from yet another class to a fourth class on an association 03:11.110 --> 03:13.600 having an navigability in that direction. 03:13.720 --> 03:17.250 And hence the dependency between the packages will go in that direction. 03:17.620 --> 03:23.770 So we see the dependencies as a function of the ingoing elements, relationships, which could be both 03:23.770 --> 03:27.430 generalisations, associations or actually even links. 03:29.650 --> 03:34.270 So that's the derived dependencies of the packages of the packages. 03:35.200 --> 03:38.170 So some packaging is so important, as I said. 03:38.170 --> 03:44.590 So I'll spend the whole last section of this course talking about this and showing you how you package 03:44.590 --> 03:46.420 and decompose a large model. 03:46.470 --> 03:53.230 But it's a key feature to achieve, modify ability and the sound architecture in any type of system, 03:54.070 --> 04:01.550 no matter if it's a business system or an IT system or any type of system, needs to be decomposed in 04:01.640 --> 04:02.770 probably a logical way. 04:04.630 --> 04:05.020 Very good. 04:05.050 --> 04:06.040 So that was actually all. 04:06.040 --> 04:07.420 I'm going to talk about packages now. 04:07.420 --> 04:10.870 I just showed you where it is and how and how they depend on each other. 04:10.870 --> 04:14.470 And that dependency is derived from the ingoing elements relations. 04:15.530 --> 04:16.420 Very good. 04:16.750 --> 04:22.330 So now we actually going to rush off into the section where we talk about how you practically do this. 04:22.610 --> 04:24.760 So now we're going into method and practice.