about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt')
-rw-r--r--usth/ICT2.7/P3L1 Software Architecture Subtitles/11 - Real World Example - lang_en_vs6.srt183
1 files changed, 0 insertions, 183 deletions
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.