about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L1 Software Architecture Subtitles/15 - Architectural Design Quiz Solution - lang_en_vs4.srt
blob: 465687cbb3ee105605704cbc4d1cf595a8b65c89 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
1
00:00:00,110 --> 00:00:02,540
So, let's look at these three characteristics one by

2
00:00:02,540 --> 00:00:06,660
one. Scalability for software architecture is its ability to handle

3
00:00:06,660 --> 00:00:09,320
the growth of the software system. For example, for a

4
00:00:09,320 --> 00:00:12,610
web based system, scalability could be the ability to handle

5
00:00:12,610 --> 00:00:15,620
a larger workload by adding new servers to the system.

6
00:00:15,620 --> 00:00:19,508
Scalability is therefore an important characteristic of a software architecture,

7
00:00:19,508 --> 00:00:21,938
especially for the kinds of systems that can grow over

8
00:00:21,938 --> 00:00:24,990
time. So, we're going to mark it as an ideal characteristic.

9
00:00:24,990 --> 00:00:27,901
Cohesion is a measure of how strongly related are

10
00:00:27,901 --> 00:00:30,920
the elements of a module. Clearly, we should shoot

11
00:00:30,920 --> 00:00:33,760
for high and not low cohesion when developing a

12
00:00:33,760 --> 00:00:37,100
system. We want to develop modules whose elements cooperate to

13
00:00:37,100 --> 00:00:40,480
provide the specific piece of functionality rather than modules

14
00:00:40,480 --> 00:00:43,410
consisting of a bunch of elements that provide different

15
00:00:43,410 --> 00:00:47,040
unrelated pieces of functionality. Therefor, low cohesion is definitely

16
00:00:47,040 --> 00:00:49,980
not something that we want. We want high cohesion instead.

17
00:00:49,980 --> 00:00:53,040
As for coupling, coupling is a concept related to cohesion

18
00:00:53,040 --> 00:00:55,070
and is also a measure. In this case though, it

19
00:00:55,070 --> 00:00:58,130
is a measure of how strongly related are the different

20
00:00:58,130 --> 00:01:01,830
modules in a system. Low coupling, which is often correlated with

21
00:01:01,830 --> 00:01:05,570
high cohesion, is an important and ideal characteristic of a

22
00:01:05,570 --> 00:01:08,660
software architecture as it indicates that the different modules in

23
00:01:08,660 --> 00:01:12,220
the system are independent from one another. Each module provides

24
00:01:12,220 --> 00:01:15,300
a specific piece of functionality and it can provide it without

25
00:01:15,300 --> 00:01:17,530
relying too much on other modules.

26
00:01:17,530 --> 00:01:19,960
Basically, systems characterized by low coupling

27
00:01:19,960 --> 00:01:23,330
and high cohesion, are systems that are easier to understand, and to maintain.