-So, let's look at these three characteristics one by - -2
-one. Scalability for software architecture is its ability to handle - -3
-the growth of the software system. For example, for a - -4
-web based system, scalability could be the ability to handle - -5
-a larger workload by adding new servers to the system. - -6
-Scalability is therefore an important characteristic of a software architecture, - -7
-especially for the kinds of systems that can grow over - -8
-time. So, we're going to mark it as an ideal characteristic. - -9
-Cohesion is a measure of how strongly related are - -10
-the elements of a module. Clearly, we should shoot - -11
-for high and not low cohesion when developing a - -12
-system. We want to develop modules whose elements cooperate to - -13
-provide the specific piece of functionality rather than modules - -14
-consisting of a bunch of elements that provide different - -15
-unrelated pieces of functionality. Therefor, low cohesion is definitely - -16
-not something that we want. We want high cohesion instead. - -17
-As for coupling, coupling is a concept related to cohesion - -18
-and is also a measure. In this case though, it - -19
-is a measure of how strongly related are the different - -20
-modules in a system. Low coupling, which is often correlated with - -21
-high cohesion, is an important and ideal characteristic of a - -22
-software architecture as it indicates that the different modules in - -23
-the system are independent from one another. Each module provides - -24
-a specific piece of functionality and it can provide it without - -25
-relying too much on other modules. - -26
-Basically, systems characterized by low coupling - -27
-and high cohesion, are systems that are easier to understand, and to maintain. -- cgit 1.4.1