-I'm going to conclude this set of examples with - -2
-a system that you might also know, Bash. And in - -3
-case you don't, Bash is a Unix shell written as - -4
-a free software replacement for the traditional Bourne shell, also - -5
-called sh. So what I'm showing here is the - -6
-descriptive architecture of the command component of Bash. So, is - -7
-the architecture, as implemented, of the command component of Bash. - -8
-And the component is the one here sort of highlighted - -9
-in gray. And what you can see here, these names are - -10
-the sub components of the command component. And if we look at - -11
-this architecture, two design problems of the component can kind of jump - -12
-at us. The first one is the lack of cohesion within the - -13
-component. So, if you look here, you can see that only - -14
-a few connections exist between the sub-components. And having a low cohesion - -15
-is normally not a good thing for a design. The second thing - -16
-that we can note is the high coupling. The component has tons - -17
-of connections with other components. They're, these edges that are - -18
-leaving the components and going towards other parts of the system. - -19
-So basically, this component has low cohesion and high coupling, which - -20
-is exactly the opposite of how a good design should be. - -21
-Given the structure, it is clear that anytime you change - -22
-this component you might need to change a bunch of other - -23
-components in the system. And of course, when changing other components - -24
-in the system, you might also need to chance the command - -25
-component as well. And along similar lines, to understand this - -26
-component you probably need to look at many other parts of - -27
-the system, which is also less than ideal. And one - -28
-important point here is that with all these examples, I'm not - -29
-really trying to criticize any specific system, what I'm trying - -30
-to show instead, is how complex software architectures can be, and - -31
-how much they can degrade over time. And this is true - -32
-for most systems, not just the ones that I showed you. -- cgit 1.4.1