From b2d80610db6beda38573890ed169815e495bc663 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 24 May 2020 16:34:31 +0700 Subject: [usth/ICT2.7] Engineer software --- ...4 - General Definition of SWA - lang_en_vs6.srt | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 usth/ICT2.7/P3L1 Software Architecture Subtitles/4 - General Definition of SWA - lang_en_vs6.srt (limited to 'usth/ICT2.7/P3L1 Software Architecture Subtitles/4 - General Definition of SWA - lang_en_vs6.srt') diff --git a/usth/ICT2.7/P3L1 Software Architecture Subtitles/4 - General Definition of SWA - lang_en_vs6.srt b/usth/ICT2.7/P3L1 Software Architecture Subtitles/4 - General Definition of SWA - lang_en_vs6.srt new file mode 100644 index 0000000..13042a7 --- /dev/null +++ b/usth/ICT2.7/P3L1 Software Architecture Subtitles/4 - General Definition of SWA - lang_en_vs6.srt @@ -0,0 +1,131 @@ +1 +00:00:00,110 --> 00:00:03,240 +I'm going to define a software systems architecture as + +2 +00:00:03,240 --> 00:00:07,660 +the set of principal design decisions about the system. Where + +3 +00:00:07,660 --> 00:00:10,950 +principal here, implies a degree of importance, that grants + +4 +00:00:10,950 --> 00:00:14,810 +a design decision architectural status. And the point here, as + +5 +00:00:14,810 --> 00:00:17,060 +we discussed with Neno early on, is that when + +6 +00:00:17,060 --> 00:00:20,210 +building a system, we make tons of design decisions, and + +7 +00:00:20,210 --> 00:00:22,470 +most of them do not affect the architecture of + +8 +00:00:22,470 --> 00:00:25,270 +the system. For example, the effect of choosing a for + +9 +00:00:25,270 --> 00:00:27,640 +loop, instead of a while loop, in the code, or the + +10 +00:00:27,640 --> 00:00:30,140 +fact of deciding that we are going to use data structure A + +11 +00:00:30,140 --> 00:00:33,620 +instead of data structure B. Some decisions however, do affect the + +12 +00:00:33,620 --> 00:00:37,470 +architecture of the system. And in some cases the distinction between these + +13 +00:00:37,470 --> 00:00:40,600 +two kinds of design decisions is clear. In some other cases + +14 +00:00:40,600 --> 00:00:43,340 +it is much fuzzier and it depends on the context. The + +15 +00:00:43,340 --> 00:00:46,000 +bottom line here, is that if you believe that something is + +16 +00:00:46,000 --> 00:00:50,380 +an important design decision, that becomes an architectural decision. That is a + +17 +00:00:50,380 --> 00:00:53,960 +decision that impacts a system's architecture. In this spirit, + +18 +00:00:53,960 --> 00:00:56,650 +we can see a software architecture as the blueprint + +19 +00:00:56,650 --> 00:00:58,390 +for a software system, that we can use to + +20 +00:00:58,390 --> 00:01:01,320 +construct and evolve the system. And the key point + +21 +00:01:01,320 --> 00:01:05,300 +about software architecture is that this blueprint encompasses every + +22 +00:01:05,300 --> 00:01:08,600 +facet of the system under development. It encompasses its + +23 +00:01:08,600 --> 00:01:11,540 +structure, of course, but not only. It also involves + +24 +00:01:11,540 --> 00:01:15,420 +the behavior of the system, the interactions within the system, + +25 +00:01:15,420 --> 00:01:18,880 +and the non-functional properties of the system. And we will see + +26 +00:01:18,880 --> 00:01:21,960 +how this happens in the rest of the lesson. Another important + +27 +00:01:21,960 --> 00:01:25,590 +point about software architecture is that there is a temporal aspect + +28 +00:01:25,590 --> 00:01:27,570 +to it. And the point here is that you don't build the + +29 +00:01:27,570 --> 00:01:30,660 +software architecture in a single shot, but you do it iteratively, + +30 +00:01:30,660 --> 00:01:34,100 +over time. So, basically, you go from having no architecture to + +31 +00:01:34,100 --> 00:01:37,330 +your final architecture. So, at any point in time, there is + +32 +00:01:37,330 --> 00:01:40,550 +a software architecture, but it will change over time. And this happens + +33 +00:01:40,550 --> 00:01:44,780 +because design decisions are made, unmade and changed over a system's lifetime. -- cgit 1.4.1