From b2d80610db6beda38573890ed169815e495bc663 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 24 May 2020 16:34:31 +0700 Subject: [usth/ICT2.7] Engineer software --- ...l Diagrams: Component Diagram - lang_en_vs5.srt | 235 +++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/23 - UML Structural Diagrams: Component Diagram - lang_en_vs5.srt (limited to 'usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/23 - UML Structural Diagrams: Component Diagram - lang_en_vs5.srt') diff --git a/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/23 - UML Structural Diagrams: Component Diagram - lang_en_vs5.srt b/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/23 - UML Structural Diagrams: Component Diagram - lang_en_vs5.srt new file mode 100644 index 0000000..8ce2080 --- /dev/null +++ b/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/23 - UML Structural Diagrams: Component Diagram - lang_en_vs5.srt @@ -0,0 +1,235 @@ +1 +00:00:00,100 --> 00:00:02,160 +There's two more structural diagrams that I want to + +2 +00:00:02,160 --> 00:00:04,670 +mention before we move to the behavioral ones. The + +3 +00:00:04,670 --> 00:00:07,420 +first one's the component diagram. A component diagram is + +4 +00:00:07,420 --> 00:00:09,690 +a static view of components in a system and of + +5 +00:00:09,690 --> 00:00:13,010 +their relationships. More precisely, a node in a component + +6 +00:00:13,010 --> 00:00:16,700 +diagram represents a component where a component consists of one + +7 +00:00:16,700 --> 00:00:21,090 +or more classes with a well-defined interface. Edges conversely + +8 +00:00:21,090 --> 00:00:25,290 +indicate relationships between the components. You can read this relationship + +9 +00:00:25,290 --> 00:00:29,600 +as component A uses services of component B. And notice that the + +10 +00:00:29,600 --> 00:00:32,990 +component diagrams can be used to represent an architecture, which is + +11 +00:00:32,990 --> 00:00:36,110 +a topic that we will cover extensively in the next mini-course. + +12 +00:00:36,110 --> 00:00:39,540 +So let's illustrate this with an example. So, what I'm representing + +13 +00:00:39,540 --> 00:00:43,160 +here is a component diagram for our example system, the course + +14 +00:00:43,160 --> 00:00:46,220 +management system. And as you can see, it's slightly more complex + +15 +00:00:46,220 --> 00:00:48,390 +than the other diagrams that we saw. But there's really no + +16 +00:00:48,390 --> 00:00:50,700 +need to go through all the steps and all the details. + +17 +00:00:50,700 --> 00:00:53,470 +Important thing is to point out some key aspects of + +18 +00:00:53,470 --> 00:00:56,370 +this diagram. So the first one is that these rectangular + +19 +00:00:56,370 --> 00:00:58,560 +nodes are the nodes in the system, so are my + +20 +00:00:58,560 --> 00:01:02,960 +components. For example, student is a component, schedule is a component, + +21 +00:01:02,960 --> 00:01:05,069 +and so on. And as far as edges are concerned, + +22 +00:01:05,069 --> 00:01:08,580 +I'm representing two kinds of edges. The first kind of dashed + +23 +00:01:08,580 --> 00:01:12,060 +edges which were part of the original uml definition and + +24 +00:01:12,060 --> 00:01:16,120 +indicate use. So an edge, for example, between this compnent and + +25 +00:01:16,120 --> 00:01:19,570 +this compnent indicated that the seminar management uses the + +26 +00:01:19,570 --> 00:01:23,890 +facilities component. More recently, in UML two, a richer representation + +27 +00:01:23,890 --> 00:01:26,240 +was introduced, which is the one that I'm also showing + +28 +00:01:26,240 --> 00:01:27,860 +here. So if we look at this part of the + +29 +00:01:27,860 --> 00:01:29,540 +diagram, you can see this sort of you now, + +30 +00:01:29,540 --> 00:01:34,080 +lollipop socket representation. And in this case, what this represents, + +31 +00:01:34,080 --> 00:01:37,920 +is that a lollipop indicates a provided interface. So an + +32 +00:01:37,920 --> 00:01:41,500 +interface that is provided by the component. So, for example, + +33 +00:01:41,500 --> 00:01:45,940 +this security component provides encryption capabilities. The socket, + +34 +00:01:45,940 --> 00:01:49,190 +conversely, indicates a required interface. So, for example, in + +35 +00:01:49,190 --> 00:01:52,270 +this case, it's saying that the facilities component + +36 +00:01:52,270 --> 00:01:55,920 +is needing access control capabilities, which, by the way, + +37 +00:01:55,920 --> 00:01:58,660 +is provided by the security component. So in + +38 +00:01:58,660 --> 00:02:02,240 +a sense these sockets and lollipop indicate interfaces between + +39 +00:02:02,240 --> 00:02:04,770 +a provider of some of functionality, and the client + +40 +00:02:04,770 --> 00:02:06,630 +of that functionality and you can look at those + +41 +00:02:06,630 --> 00:02:09,740 +as basically APIs. So sets of methods that + +42 +00:02:09,740 --> 00:02:12,160 +provide a given functionality. To give you another + +43 +00:02:12,160 --> 00:02:14,760 +example, if we look at the persistence components + +44 +00:02:14,760 --> 00:02:19,110 +the persistence component provides, unsurprisingly, persistent services. And + +45 +00:02:19,110 --> 00:02:21,650 +those persistent services are required by several other + +46 +00:02:21,650 --> 00:02:24,520 +components in the system. And in turn, the persistent + +47 +00:02:24,520 --> 00:02:28,320 +components relies on the University database component to + +48 +00:02:28,320 --> 00:02:31,740 +provide such services. So, there's the University DB components + +49 +00:02:31,740 --> 00:02:34,700 +provide these sort of low-level database services that are used + +50 +00:02:34,700 --> 00:02:38,150 +by the persistence component To in turn provided services. Last thing + +51 +00:02:38,150 --> 00:02:41,080 +I want to note is that components or relationships can be + +52 +00:02:41,080 --> 00:02:44,450 +annotated, so, for example if we look at the seminar management + +53 +00:02:44,450 --> 00:02:47,090 +and the student administration components you can see that they + +54 +00:02:47,090 --> 00:02:51,360 +are annotated here to indicate that they are user inferfaces. So + +55 +00:02:51,360 --> 00:02:53,600 +that's all I wanted to say on the component diagrams, but + +56 +00:02:53,600 --> 00:02:56,750 +again the key piece of information is that they represent components + +57 +00:02:56,750 --> 00:03:00,250 +in the system where a component consists of one or more classes indicate the + +58 +00:03:00,250 --> 00:03:03,540 +interfaces that these components provide or require. + +59 +00:03:03,540 --> 00:03:06,210 +and describe the interactions between these components. -- cgit 1.4.1