about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L1 Software Architecture Subtitles/3 - What is Software Architecture? - lang_en_vs6.srt
blob: 8689e4364843c90097e0fe8028ddea297290bda7 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
1
00:00:00,140 --> 00:00:02,460
After this interesting conversation with Neno, let me start

2
00:00:02,460 --> 00:00:06,060
the lesson by defining what a software architecture is.

3
00:00:06,060 --> 00:00:07,600
And to do that, I'm going to use two

4
00:00:07,600 --> 00:00:11,030
seminal definitions. The first one is from Dewayne Perry

5
00:00:11,030 --> 00:00:13,990
and Alex Wolf. And they define a software architecture

6
00:00:13,990 --> 00:00:17,940
as elements, form and rationale. In this definition, the

7
00:00:17,940 --> 00:00:21,300
elements are the what, which means the processes, data,

8
00:00:21,300 --> 00:00:25,430
and connectors that compose a software architecture. The form

9
00:00:25,430 --> 00:00:27,780
is the how, the set of properties of

10
00:00:27,780 --> 00:00:32,030
in relationships among these elements. And, finally, the rationale

11
00:00:32,030 --> 00:00:35,390
is the why, the justification for the elements and

12
00:00:35,390 --> 00:00:38,440
their relationships. The second definition I want to use

13
00:00:38,440 --> 00:00:40,710
is from Mary Shaw and David Garland. And

14
00:00:40,710 --> 00:00:43,480
they defined a software architecture as a level of

15
00:00:43,480 --> 00:00:47,300
design that involves four main things, a description of

16
00:00:47,300 --> 00:00:50,860
elements from which these systems are built, the interactions

17
00:00:50,860 --> 00:00:54,800
among those elements, the patterns that guide their composition, and

18
00:00:54,800 --> 00:00:58,320
finally, the constraints on these patterns. As you can see, these

19
00:00:58,320 --> 00:01:01,420
definitions are fairly similar and there are many more alternative

20
00:01:01,420 --> 00:01:04,870
definitions of software architecture. In fact, if we try to search

21
00:01:04,870 --> 00:01:08,540
the term software architecture, we get over two million entries.

22
00:01:08,540 --> 00:01:10,670
And if we look at the images in the results of

23
00:01:10,670 --> 00:01:13,110
the search this is what we get. And I like this

24
00:01:13,110 --> 00:01:16,120
sort of graphical depiction because it gives you a clear idea

25
00:01:16,120 --> 00:01:19,300
the software architecture are prevalent concept, given the number of

26
00:01:19,300 --> 00:01:22,600
results. But they also show you clearly, that software architecture are

27
00:01:22,600 --> 00:01:25,550
complex entities, if you look at some of these pictures.

28
00:01:25,550 --> 00:01:28,930
And ultimately, they show that software architecture are presented in all

29
00:01:28,930 --> 00:01:31,700
kinds of ways including in 3D, if you look at this

30
00:01:31,700 --> 00:01:34,970
picture. We cannot clearly cover all of these definitions in one

31
00:01:34,970 --> 00:01:37,340
lesson. So what I will do instead, is to introduce

32
00:01:37,340 --> 00:01:40,750
a very general definition that encompasses most of the existing ones.