From 8a7dfa0972c83fd811a4296e7373574bea4a28d0 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 19 Jul 2020 20:34:40 +0700 Subject: [usth/ICT2.7] Remove Udacity transcribes --- .../11 - Real World Example - lang_en_vs6.srt | 183 --------------------- 1 file changed, 183 deletions(-) delete mode 100644 usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt (limited to 'usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt') diff --git a/usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt b/usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt deleted file mode 100644 index 4e64d4a..0000000 --- a/usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt +++ /dev/null @@ -1,183 +0,0 @@ -1 -00:00:00,210 --> 00:00:02,770 -Now to drive home some of the points that I just - -2 -00:00:02,770 --> 00:00:05,920 -made, I would like to show you a few real world examples - -3 -00:00:05,920 --> 00:00:09,150 -of architectures that kind of went astray. The first example I - -4 -00:00:09,150 --> 00:00:11,970 -want to use is an example from the Linux kernel. Actually, from - -5 -00:00:11,970 --> 00:00:15,260 -an earlier version of the Linux kernel. A research group studied - -6 -00:00:15,260 --> 00:00:17,020 -the documentation of Linux, and also - -7 -00:00:17,020 --> 00:00:19,440 -interviewed several Linux developers. And by - -8 -00:00:19,440 --> 00:00:21,710 -doing that, they were able to come up with a software - -9 -00:00:21,710 --> 00:00:25,260 -architecture of Linux at different levels of obstruction. So the one that - -10 -00:00:25,260 --> 00:00:27,365 -I'm showing you here on the left, is the - -11 -00:00:27,365 --> 00:00:31,120 -software architecture at the level of Linux's main subsystems. So - -12 -00:00:31,120 --> 00:00:34,540 -this is the prescriptive architecture of Linux at the level - -13 -00:00:34,540 --> 00:00:38,060 -of Linux's main subsystems. So the researchers, after identifying this - -14 -00:00:38,060 --> 00:00:40,420 -architecture, they showed it to the developers, and the - -15 -00:00:40,420 --> 00:00:43,180 -developers agreed that, that was indeed the architecture of the - -16 -00:00:43,180 --> 00:00:46,540 -system. The researchers then studied the source code of Linux - -17 -00:00:46,540 --> 00:00:50,380 -and reverse engineered its actual architecture. So the architecture as - -18 -00:00:50,380 --> 00:00:54,020 -implemented, it's descriptive architecture. And this one here, on the - -19 -00:00:54,020 --> 00:00:56,610 -right, is the result. And as you can see, they found - -20 -00:00:56,610 --> 00:01:00,940 -a number of differences or violations between the prescriptive architecture and - -21 -00:01:00,940 --> 00:01:04,080 -the descriptive architecture. In particular, if we look at this architecture, - -22 -00:01:04,080 --> 00:01:06,820 -we can see that pretty much everything talks to everything else, - -23 -00:01:06,820 --> 00:01:09,010 -which is, in general, not a good thing. And in addition - -24 -00:01:09,010 --> 00:01:11,890 -to that, there are also several things that don't really make - -25 -00:01:11,890 --> 00:01:15,630 -much sense. For example the library calls the file system and - -26 -00:01:15,630 --> 00:01:19,290 -also the network interface which doesn't make much sense. Another thing - -27 -00:01:19,290 --> 00:01:21,850 -that is kind of weird is the fact that file system - -28 -00:01:21,850 --> 00:01:25,250 -calls the kernel initialization code. Which is also a little bit - -29 -00:01:25,250 --> 00:01:28,100 -weird. So basically, the bottom line here is that not even - -30 -00:01:28,100 --> 00:01:32,020 -the developers realized how the actual architecture of the system was, - -31 -00:01:32,020 --> 00:01:35,170 -and how it was different from the architecture they have conceived. - -32 -00:01:35,170 --> 00:01:37,870 -And in fact another interesting thing here is the reaction of - -33 -00:01:37,870 --> 00:01:41,020 -the developers when they were shown the actual architecture. So basically - -34 -00:01:41,020 --> 00:01:44,110 -they justified the differences by saying things such as, well you - -35 -00:01:44,110 --> 00:01:47,120 -know it had to be done fast, and therefore I changed it - -36 -00:01:47,120 --> 00:01:50,110 -and then I didn't have time to go back and update the documentation - -37 -00:01:50,110 --> 00:01:52,800 -and things of this sort. And by the way these are exactly some - -38 -00:01:52,800 --> 00:01:55,640 -of the reasons that we mentioned early on in the lesson for the - -39 -00:01:55,640 --> 00:01:58,410 -discrepancy between prescriptive and descriptive software - -40 -00:01:58,410 --> 00:01:59,990 -architecture. So one last thing that I - -41 -00:01:59,990 --> 00:02:02,840 -want to mention here as an aside and we can get back to - -42 -00:02:02,840 --> 00:02:06,495 -that later is the fact that you can probably clearly show how representing - -43 -00:02:06,495 --> 00:02:10,880 -software architectures graphically can be extremely useful, because it allows - -44 -00:02:10,880 --> 00:02:14,140 -for easily seeing the structure of the system. Look at different - -45 -00:02:14,140 --> 00:02:17,140 -views identify problematic points and so on. And we will see - -46 -00:02:17,140 --> 00:02:19,740 -how that can be useful in many cases also later on. -- cgit 1.4.1