WEBVTT

1
00:00:04.875 --> 00:00:07.255
<00:00:04.875>And <00:00:05.155>welcome <00:00:05.435>to <00:00:05.715>Modern <00:00:05.995>Software <00:00:06.275>Architecture,

2
00:00:07.595 --> 00:00:08.935
<00:00:07.595>and <00:00:07.796>I'm <00:00:07.997>a <00:00:08.198>little <00:00:08.399>bit <00:00:08.600>surprised <00:00:08.801>that

3
00:00:08.995 --> 00:00:11.935
<00:00:08.995>so <00:00:09.194>many <00:00:09.395>people <00:00:09.594>are <00:00:09.795>interested <00:00:09.995>in, <00:00:10.194>uh, <00:00:10.395>architecture.

4
00:00:12.275 --> 00:00:15.095
<00:00:12.275>And <00:00:12.430>we <00:00:12.586>will <00:00:12.741>today <00:00:12.897>speak <00:00:13.052>about <00:00:13.208>how <00:00:13.363>you <00:00:13.519>create <00:00:13.675>an,

5
00:00:15.115 --> 00:00:16.815
<00:00:15.115>an <00:00:15.465>architecture <00:00:15.815>which <00:00:16.165>is <00:00:16.515>flexible.

6
00:00:17.035 --> 00:00:19.495
<00:00:17.035>And <00:00:17.235>to <00:00:17.435>be <00:00:17.635>honest, <00:00:17.835>directly <00:00:18.035>from <00:00:18.235>the <00:00:18.435>beginning,

7
00:00:19.795 --> 00:00:21.735
<00:00:19.795>we <00:00:20.028>will <00:00:20.261>don't <00:00:20.495>speak <00:00:20.728>about <00:00:20.961>nothing <00:00:21.195>new.

8
00:00:22.035 --> 00:00:24.295
<00:00:22.035>One <00:00:22.268>key <00:00:22.501>point <00:00:22.735>of <00:00:22.968>software <00:00:23.201>architecture <00:00:23.435>is

9
00:00:24.295 --> 00:00:27.255
<00:00:24.295>that <00:00:24.495>everything <00:00:24.695>we <00:00:24.895>need <00:00:25.095>to <00:00:25.295>create <00:00:25.495>good <00:00:25.695>architectures,

10
00:00:27.455 --> 00:00:30.055
<00:00:27.455>reliable <00:00:27.805>architecture <00:00:28.154>already <00:00:28.505>was <00:00:28.854>invented

11
00:00:30.115 --> 00:00:31.335
<00:00:30.115>in <00:00:30.334>the <00:00:30.554>eighties, <00:00:30.773>more <00:00:30.993>or <00:00:31.213>less.

12
00:00:31.675 --> 00:00:34.335
<00:00:31.675>And <00:00:31.875>we <00:00:32.075>will <00:00:32.275>quickly <00:00:32.475>go <00:00:32.674>over <00:00:32.875>this <00:00:33.075>points.

13
00:00:34.495 --> 00:00:37.575
<00:00:34.495>I <00:00:34.635>will <00:00:34.775>show <00:00:34.915>you <00:00:35.055>some <00:00:35.195>hints <00:00:35.334>how <00:00:35.474>you <00:00:35.614>can <00:00:35.754>reach <00:00:35.894>flexibility,

14
00:00:37.685 --> 00:00:40.535
<00:00:37.685>readability, <00:00:38.151>realizability, <00:00:38.618>et <00:00:39.085>cetera.

15
00:00:41.225 --> 00:00:42.655
<00:00:41.225>First <00:00:41.546>some <00:00:41.868>words <00:00:42.190>about <00:00:42.512>me.

16
00:00:42.675 --> 00:00:44.735
<00:00:42.675>My <00:00:42.849>name <00:00:43.025>is <00:00:43.199>David <00:00:43.375>tk, <00:00:43.550>like <00:00:43.724>Dennis <00:00:43.900>said <00:00:44.074>already,

17
00:00:44.835 --> 00:00:46.575
<00:00:44.835>I'm <00:00:45.115>from <00:00:45.395>Germany, <00:00:45.675>I'm <00:00:45.955>from <00:00:46.235>Winberg,

18
00:00:46.955 --> 00:00:49.695
<00:00:46.955>and <00:00:47.155>I <00:00:47.355>do <00:00:47.555>software <00:00:47.754>development <00:00:47.955>my <00:00:48.155>entire <00:00:48.355>life.

19
00:00:49.895 --> 00:00:51.535
<00:00:49.895>I <00:00:50.128>started <00:00:50.361>with <00:00:50.595>a <00:00:50.828>ideas <00:00:51.061>to <00:00:51.295>develop,

20
00:00:51.995 --> 00:00:53.495
<00:00:51.995>and <00:00:52.332>directly <00:00:52.669>from <00:00:53.007>the <00:00:53.345>beginning,

21
00:00:53.635 --> 00:00:55.975
<00:00:53.635>my <00:00:53.835>interest <00:00:54.035>was <00:00:54.235>not <00:00:54.434>just <00:00:54.635>in <00:00:54.835>software <00:00:55.035>development,

22
00:00:56.235 --> 00:00:59.535
<00:00:56.235>but <00:00:56.515>also <00:00:56.795>in <00:00:57.075>software <00:00:57.355>architecture <00:00:57.635>development

23
00:00:59.605 --> 00:01:00.815
<00:00:59.605>processes <00:00:59.968>and <00:01:00.330>so <00:01:00.693>on.

24
00:01:01.475 --> 00:01:05.215
<00:01:01.475>And <00:01:01.615>over <00:01:01.755>time <00:01:01.895>it, <00:01:02.035>it <00:01:02.175>evolved <00:01:02.315>and <00:01:02.455>I <00:01:02.595>done <00:01:02.735>my <00:01:02.875>study.

25
00:01:05.275 --> 00:01:06.695
<00:01:05.275>And <00:01:05.530>during <00:01:05.786>my <00:01:06.041>study, <00:01:06.297>I <00:01:06.553>worked

26
00:01:06.715 --> 00:01:08.455
<00:01:06.715>for <00:01:06.995>Microsoft <00:01:07.275>as <00:01:07.555>a <00:01:07.835>student <00:01:08.115>partner.

27
00:01:09.035 --> 00:01:11.655
<00:01:09.035>And <00:01:09.190>during <00:01:09.346>this <00:01:09.501>time <00:01:09.657>as <00:01:09.812>a <00:01:09.968>student <00:01:10.123>partner, <00:01:10.279>I <00:01:10.435>realized

28
00:01:11.795 --> 00:01:13.895
<00:01:11.795>how <00:01:12.145>poorly <00:01:12.495>presented <00:01:12.845>software <00:01:13.195>architecture,

29
00:01:14.175 --> 00:01:16.575
<00:01:14.175>software <00:01:14.408>quality <00:01:14.641>in <00:01:14.875>general <00:01:15.108>is <00:01:15.341>in <00:01:15.575>the,

30
00:01:16.595 --> 00:01:18.095
<00:01:16.595>in <00:01:16.865>the, <00:01:17.135>in <00:01:17.405>the <00:01:17.675>normal <00:01:17.945>public.

31
00:01:18.595 --> 00:01:21.535
<00:01:18.595>And <00:01:18.795>then <00:01:18.995>I <00:01:19.195>started <00:01:19.395>my <00:01:19.595>freelancing <00:01:19.795>career, <00:01:19.995>um,

32
00:01:21.535 --> 00:01:24.255
<00:01:21.535>started <00:01:21.690>working <00:01:21.846>as <00:01:22.001>a <00:01:22.157>consultant, <00:01:22.312>as <00:01:22.468>a <00:01:22.623>trainer, <00:01:22.779>et <00:01:22.935>cetera.

33
00:01:24.435 --> 00:01:26.335
<00:01:24.435>And <00:01:24.635>then <00:01:24.835>it, <00:01:25.035>yeah, <00:01:25.235>goes <00:01:25.435>on <00:01:25.635>till <00:01:25.835>now.

34
00:01:26.635 --> 00:01:29.535
<00:01:26.635>And <00:01:26.762>now <00:01:26.889>I <00:01:27.016>have <00:01:27.144>a <00:01:27.271>lot <00:01:27.398>of <00:01:27.525>customers <00:01:27.653>over <00:01:27.780>the <00:01:27.907>entire <00:01:28.035>world.

35
00:01:29.935 --> 00:01:31.655
<00:01:29.935>I <00:01:30.285>train <00:01:30.635>the <00:01:30.985>architecture <00:01:31.335>there,

36
00:01:31.655 --> 00:01:33.215
<00:01:31.655>consult <00:01:31.935>them, <00:01:32.215>et <00:01:32.495>cetera, <00:01:32.775>et <00:01:33.055>cetera.

37
00:01:33.325 --> 00:01:36.335
<00:01:33.325>Because <00:01:33.500>like <00:01:33.675>I <00:01:33.850>said, <00:01:34.025>architecture <00:01:34.200>is <00:01:34.375>a <00:01:34.550>problem <00:01:34.725>more

38
00:01:36.335 --> 00:01:37.695
<00:01:36.335>or <00:01:36.641>less <00:01:36.947>in <00:01:37.253>every <00:01:37.559>project

39
00:01:37.795 --> 00:01:40.055
<00:01:37.795>and <00:01:37.995>every <00:01:38.195>development <00:01:38.395>team <00:01:38.595>hands <00:01:38.795>up <00:01:38.995>from <00:01:39.195>everyone

40
00:01:40.075 --> 00:01:42.975
<00:01:40.075>who <00:01:40.230>has <00:01:40.386>problems <00:01:40.541>with <00:01:40.697>architecture <00:01:40.852>in <00:01:41.008>the <00:01:41.163>teams <00:01:41.319>in <00:01:41.475>the

41
00:01:42.975 --> 00:01:44.255
<00:01:42.975>project, <00:01:44.127>okay?

42
00:01:44.255 --> 00:01:45.295
<00:01:44.255>It's <00:01:44.567>an <00:01:44.879>architecture <00:01:45.191>track.

43
00:01:45.315 --> 00:01:47.695
<00:01:45.315>So <00:01:45.548>the <00:01:45.781>question <00:01:46.015>is, <00:01:46.248>uh, <00:01:46.481>is <00:01:46.715>ridiculous,

44
00:01:48.035 --> 00:01:51.815
<00:01:48.035>but <00:01:48.162>we <00:01:48.289>will <00:01:48.416>speak <00:01:48.544>about <00:01:48.671>how <00:01:48.798>you <00:01:48.925>get <00:01:49.053>into <00:01:49.180>so <00:01:49.307>far <00:01:49.435>architecture

45
00:01:51.815 --> 00:01:54.535
<00:01:51.815>and <00:01:51.990>how <00:01:52.164>you <00:01:52.340>can <00:01:52.515>make <00:01:52.690>your <00:01:52.865>application <00:01:53.039>more <00:01:53.215>flexible

46
00:01:54.925 --> 00:01:56.255
<00:01:54.925>with <00:01:55.224>just <00:01:55.523>a <00:01:55.822>basic <00:01:56.122>concept.

47
00:01:56.435 --> 00:01:59.175
<00:01:56.435>And <00:01:56.610>like <00:01:56.785>I <00:01:56.960>said, <00:01:57.135>the <00:01:57.310>most <00:01:57.485>context, <00:01:57.660>uh, <00:01:57.835>uh,

48
00:01:59.175 --> 00:02:01.455
<00:01:59.175>concepts <00:01:59.375>we <00:01:59.575>will <00:01:59.774>speak <00:01:59.975>about <00:02:00.175>is <00:02:00.375>nothing <00:02:00.575>new

49
00:02:01.475 --> 00:02:02.895
<00:02:01.475>to <00:02:01.687>you, <00:02:01.901>at <00:02:02.113>least <00:02:02.327>I <00:02:02.539>hope <00:02:02.753>it.

50
00:02:03.395 --> 00:02:05.335
<00:02:03.395>Um, <00:02:03.744>I <00:02:04.095>have <00:02:04.445>several, <00:02:04.795>um,

51
00:02:05.335 --> 00:02:07.535
<00:02:05.335>videos <00:02:05.684>created <00:02:06.035>about <00:02:06.384>software <00:02:06.735>architecture,

52
00:02:07.535 --> 00:02:08.895
<00:02:07.535>certainly <00:02:07.943>just <00:02:08.351>in <00:02:08.759>German,

53
00:02:09.235 --> 00:02:12.655
<00:02:09.235>but <00:02:09.375>I <00:02:09.515>spend <00:02:09.655>a <00:02:09.795>lot <00:02:09.935>of <00:02:10.075>time <00:02:10.215>for <00:02:10.355>subtitles, <00:02:10.495>English <00:02:10.635>subtitles.

54
00:02:12.875 --> 00:02:15.655
<00:02:12.875>So <00:02:13.030>you <00:02:13.186>will <00:02:13.341>see <00:02:13.497>some <00:02:13.652>video <00:02:13.808>links <00:02:13.963>in <00:02:14.119>this <00:02:14.275>presentation

55
00:02:15.955 --> 00:02:18.255
<00:02:15.955>for <00:02:16.235>further <00:02:16.515>referencing <00:02:16.795>to <00:02:17.075>special <00:02:17.355>principles,

56
00:02:18.555 --> 00:02:19.775
<00:02:18.555>et <00:02:18.921>cetera, <00:02:19.287>et <00:02:19.653>cetera.

57
00:02:20.035 --> 00:02:23.055
<00:02:20.035>And <00:02:20.174>on <00:02:20.315>this <00:02:20.454>channel, <00:02:20.595>you <00:02:20.734>will <00:02:20.875>find <00:02:21.015>all <00:02:21.155>the <00:02:21.295>different <00:02:21.435>videos

58
00:02:23.395 --> 00:02:25.055
<00:02:23.395>and <00:02:23.745>you're <00:02:24.095>welcome <00:02:24.445>to <00:02:24.795>subscribe.

59
00:02:25.595 --> 00:02:28.055
<00:02:25.595>So <00:02:25.770>let's <00:02:25.945>talk <00:02:26.120>about <00:02:26.295>basics <00:02:26.470>of <00:02:26.645>software <00:02:26.820>architecture <00:02:26.995>first,

60
00:02:28.055 --> 00:02:31.615
<00:02:28.055>because <00:02:28.195>if <00:02:28.335>I <00:02:28.475>do <00:02:28.615>consulting <00:02:28.755>jobs, <00:02:28.895>the <00:02:29.035>first <00:02:29.175>question <00:02:29.315>of <00:02:29.455>CEOs,

61
00:02:31.695 --> 00:02:33.135
<00:02:31.695>for <00:02:32.019>example, <00:02:32.343>is <00:02:32.667>often, <00:02:32.991>okay,

62
00:02:33.155 --> 00:02:35.335
<00:02:33.155>why <00:02:33.310>do <00:02:33.466>we <00:02:33.621>need <00:02:33.777>software <00:02:33.932>architecture <00:02:34.088>in <00:02:34.243>the <00:02:34.399>first <00:02:34.555>place?

63
00:02:35.835 --> 00:02:38.815
<00:02:35.835>And <00:02:36.010>software <00:02:36.185>architecture <00:02:36.360>is <00:02:36.535>a <00:02:36.710>subset <00:02:36.885>of <00:02:37.060>software <00:02:37.235>quality.

64
00:02:39.455 --> 00:02:40.695
<00:02:39.454>Software <00:02:39.733>quality <00:02:40.012>means <00:02:40.292>we <00:02:40.571>try

65
00:02:40.695 --> 00:02:43.575
<00:02:40.695>to <00:02:40.870>produce <00:02:41.045>our <00:02:41.220>software <00:02:41.394>in <00:02:41.570>the <00:02:41.745>best <00:02:41.920>possible <00:02:42.095>way

66
00:02:43.795 --> 00:02:45.775
<00:02:43.795>to <00:02:44.028>reach <00:02:44.261>not <00:02:44.495>only <00:02:44.728>the <00:02:44.961>functional <00:02:45.195>requirements

67
00:02:45.775 --> 00:02:47.695
<00:02:45.775>of <00:02:46.008>our <00:02:46.241>customers, <00:02:46.475>but <00:02:46.708>also <00:02:46.941>the <00:02:47.175>quality

68
00:02:47.695 --> 00:02:49.215
<00:02:47.695>requirements <00:02:48.151>of <00:02:48.607>our <00:02:49.063>customer.

69
00:02:49.555 --> 00:02:51.535
<00:02:49.555>And <00:02:49.755>for <00:02:49.955>us <00:02:50.155>as <00:02:50.355>a <00:02:50.555>company, <00:02:50.755>of <00:02:50.955>course,

70
00:02:51.875 --> 00:02:56.615
<00:02:51.875>and <00:02:51.982>back <00:02:52.090>in <00:02:52.198>the <00:02:52.305>days <00:02:52.413>isn't <00:02:52.521>20 <00:02:52.628>years <00:02:52.736>ago <00:02:52.844>we <00:02:52.951>had <00:02:53.059>a <00:02:53.167>ISO <00:02:53.275>model

71
00:02:56.635 --> 00:02:59.015
<00:02:56.635>to <00:02:56.834>describe <00:02:57.035>this <00:02:57.234>software <00:02:57.435>quality <00:02:57.635>thing, <00:02:57.834>which <00:02:58.035>was,

72
00:02:59.030 --> 00:03:00.885
<00:02:59.030>was <00:02:59.380>called <00:02:59.730>ISO <00:03:00.080>91 <00:03:00.430>26.

73
00:03:01.405 --> 00:03:03.605
<00:03:01.405>Nowadays, <00:03:01.545>we <00:03:01.685>have <00:03:01.825>a <00:03:01.965>much <00:03:02.105>more <00:03:02.245>modern <00:03:02.385>approach <00:03:02.525>to <00:03:02.665>do <00:03:02.805>this,

74
00:03:03.945 --> 00:03:05.405
<00:03:03.945>but <00:03:04.207>I <00:03:04.470>still <00:03:04.733>like <00:03:04.996>this <00:03:05.259>model

75
00:03:05.405 --> 00:03:09.325
<00:03:05.405>because <00:03:05.560>it <00:03:05.716>gives <00:03:05.871>you <00:03:06.027>a <00:03:06.182>very <00:03:06.338>good <00:03:06.493>overview <00:03:06.649>about <00:03:06.805>software

76
00:03:09.325 --> 00:03:11.925
<00:03:09.325>development <00:03:09.500>in <00:03:09.674>general, <00:03:09.850>and <00:03:10.024>you <00:03:10.200>can <00:03:10.375>use <00:03:10.549>it <00:03:10.725>perfectly

77
00:03:11.925 --> 00:03:13.165
<00:03:11.925>to <00:03:12.483>communicate <00:03:13.041>problems

78
00:03:13.265 --> 00:03:16.765
<00:03:13.265>and <00:03:13.420>measures <00:03:13.576>you <00:03:13.731>do <00:03:13.887>in <00:03:14.042>software <00:03:14.198>development, <00:03:14.353>even <00:03:14.509>to <00:03:14.665>CEOs

79
00:03:16.765 --> 00:03:18.245
<00:03:16.765>or <00:03:16.987>to <00:03:17.209>people <00:03:17.430>who <00:03:17.653>have <00:03:17.875>no <00:03:18.097>knowledge

80
00:03:18.245 --> 00:03:19.565
<00:03:18.245>about <00:03:18.542>software <00:03:18.839>development <00:03:19.136>at <00:03:19.433>all.

81
00:03:19.985 --> 00:03:22.285
<00:03:19.985>You <00:03:20.265>see, <00:03:20.545>we <00:03:20.825>have <00:03:21.105>six <00:03:21.385>subcategories.

82
00:03:22.285 --> 00:03:24.925
<00:03:22.285>Each <00:03:22.565>subcategory <00:03:22.845>describes <00:03:23.125>a <00:03:23.405>special <00:03:23.685>quality

83
00:03:25.025 --> 00:03:26.405
<00:03:25.025>aspect <00:03:25.439>in <00:03:25.853>software <00:03:26.267>development.

84
00:03:26.905 --> 00:03:28.725
<00:03:26.905>And <00:03:27.605>this <00:03:28.305>are,

85
00:03:28.945 --> 00:03:31.165
<00:03:28.945>or <00:03:29.100>this, <00:03:29.256>if <00:03:29.411>you <00:03:29.567>do <00:03:29.722>some <00:03:29.878>work <00:03:30.033>in <00:03:30.189>this <00:03:30.345>field,

86
00:03:31.265 --> 00:03:33.965
<00:03:31.265>you <00:03:31.420>don't <00:03:31.576>do <00:03:31.731>them <00:03:31.887>for <00:03:32.042>yourself <00:03:32.198>or <00:03:32.353>for <00:03:32.509>someone <00:03:32.665>else.

87
00:03:34.265 --> 00:03:36.325
<00:03:34.265>You <00:03:34.464>do <00:03:34.665>it <00:03:34.864>because <00:03:35.065>you <00:03:35.265>get <00:03:35.464>a <00:03:35.665>requirement.

88
00:03:36.945 --> 00:03:39.805
<00:03:36.945>We <00:03:37.084>should <00:03:37.225>have <00:03:37.364>a <00:03:37.505>solid <00:03:37.644>base <00:03:37.785>of <00:03:37.924>requirements <00:03:38.065>in <00:03:38.204>our <00:03:38.345>project.

89
00:03:40.065 --> 00:03:42.285
<00:03:40.065>And <00:03:40.192>every <00:03:40.319>one <00:03:40.446>of <00:03:40.574>you <00:03:40.701>knows <00:03:40.828>that's <00:03:40.955>more <00:03:41.083>or <00:03:41.210>less <00:03:41.337>a <00:03:41.465>dream

90
00:03:42.665 --> 00:03:45.245
<00:03:42.665>and <00:03:42.898>requirements <00:03:43.131>is <00:03:43.364>every <00:03:43.598>time <00:03:43.831>very <00:03:44.065>difficult.

91
00:03:45.345 --> 00:03:48.165
<00:03:45.345>But <00:03:45.472>if <00:03:45.599>you <00:03:45.726>take <00:03:45.854>a <00:03:45.981>look <00:03:46.108>on <00:03:46.235>the <00:03:46.363>first <00:03:46.490>party <00:03:46.617>of <00:03:46.745>functionality,

92
00:03:48.515 --> 00:03:51.125
<00:03:48.515>this <00:03:48.690>is <00:03:48.864>more <00:03:49.040>or <00:03:49.214>less <00:03:49.390>influenced <00:03:49.565>by <00:03:49.739>functional <00:03:49.915>requirements.

93
00:03:51.485 --> 00:03:54.165
<00:03:51.485>Functional <00:03:51.660>requirements <00:03:51.835>is <00:03:52.010>a <00:03:52.185>part <00:03:52.360>in <00:03:52.535>our <00:03:52.710>requirement <00:03:52.885>base,

94
00:03:54.375 --> 00:03:56.285
<00:03:54.375>which <00:03:54.841>yeah, <00:03:55.308>makes <00:03:55.775>assumptions.

95
00:03:56.285 --> 00:03:59.405
<00:03:56.285>What <00:03:56.484>functionality <00:03:56.685>should <00:03:56.885>be <00:03:57.085>implemented <00:03:57.285>in <00:03:57.484>our <00:03:57.685>software.

96
00:03:59.705 --> 00:04:02.325
<00:03:59.704>And <00:03:59.844>all <00:03:59.984>the <00:04:00.124>rest <00:04:00.265>you <00:04:00.404>can <00:04:00.545>see <00:04:00.684>over <00:04:00.825>here <00:04:00.964>is <00:04:01.105>influenced

97
00:04:02.325 --> 00:04:03.805
<00:04:02.325>by <00:04:02.769>the <00:04:03.213>non-functional <00:04:03.657>requirements.

98
00:04:03.805 --> 00:04:05.925
<00:04:03.805>And <00:04:04.155>non-functional <00:04:04.505>requirements <00:04:04.855>are <00:04:05.205>more

99
00:04:05.925 --> 00:04:08.885
<00:04:05.925>or <00:04:06.100>less <00:04:06.275>about <00:04:06.450>how <00:04:06.625>you <00:04:06.800>develop <00:04:06.975>software, <00:04:07.150>how <00:04:07.325>fast,

100
00:04:09.025 --> 00:04:12.045
<00:04:09.025>how <00:04:09.225>reliable, <00:04:09.425>how <00:04:09.625>readable, <00:04:09.825>how <00:04:10.025>usable, <00:04:10.225>et <00:04:10.425>cetera.

101
00:04:12.705 --> 00:04:15.285
<00:04:12.705>And <00:04:12.845>I <00:04:12.985>guess <00:04:13.125>most <00:04:13.265>of <00:04:13.405>you <00:04:13.545>know <00:04:13.685>that <00:04:13.825>this <00:04:13.965>is <00:04:14.105>more

102
00:04:15.285 --> 00:04:18.125
<00:04:15.285>or <00:04:15.484>less <00:04:15.685>not <00:04:15.885>represented <00:04:16.084>in <00:04:16.284>our <00:04:16.485>normal <00:04:16.685>backlogs

103
00:04:18.125 --> 00:04:19.645
<00:04:18.125>and <00:04:18.353>in <00:04:18.581>our <00:04:18.808>normal <00:04:19.036>life <00:04:19.265>because <00:04:19.493>most

104
00:04:19.645 --> 00:04:24.405
<00:04:19.644>of <00:04:19.772>the <00:04:19.899>time <00:04:20.026>we <00:04:20.154>get <00:04:20.281>80, <00:04:20.408>90, <00:04:20.535>95, <00:04:20.663>maybe <00:04:20.790>sometimes <00:04:20.917>even <00:04:21.044>100%

105
00:04:24.665 --> 00:04:25.925
<00:04:24.665>of <00:04:25.232>functional <00:04:25.799>requirements

106
00:04:26.025 --> 00:04:29.005
<00:04:26.025>and <00:04:26.224>not <00:04:26.424>so <00:04:26.625>much <00:04:26.825>of, <00:04:27.025>uh, <00:04:27.224>non-functional <00:04:27.424>requirements.

107
00:04:29.465 --> 00:04:31.525
<00:04:29.465>And <00:04:29.640>if <00:04:29.815>you <00:04:29.989>report <00:04:30.164>this <00:04:30.340>over <00:04:30.515>to <00:04:30.690>this <00:04:30.864>diagram,

108
00:04:31.785 --> 00:04:34.725
<00:04:31.785>you <00:04:31.912>can <00:04:32.039>see <00:04:32.166>why <00:04:32.294>we <00:04:32.421>have <00:04:32.548>so <00:04:32.675>much <00:04:32.803>trouble <00:04:32.930>in <00:04:33.057>software <00:04:33.185>quality

109
00:04:34.725 --> 00:04:36.845
<00:04:34.725>because <00:04:34.958>we <00:04:35.191>simply <00:04:35.425>don't <00:04:35.658>get <00:04:35.891>enough <00:04:36.125>requirements

110
00:04:37.065 --> 00:04:38.325
<00:04:37.065>to <00:04:37.291>do <00:04:37.518>something <00:04:37.745>in <00:04:37.972>this <00:04:38.199>field.

111
00:04:38.505 --> 00:04:41.485
<00:04:38.505>Of <00:04:38.680>course, <00:04:38.855>we <00:04:39.030>software <00:04:39.205>developers <00:04:39.380>try <00:04:39.555>to <00:04:39.730>do <00:04:39.905>something

112
00:04:41.995 --> 00:04:43.445
<00:04:41.995>even <00:04:42.256>if <00:04:42.517>we <00:04:42.778>don't <00:04:43.039>have <00:04:43.300>requirements,

113
00:04:43.465 --> 00:04:45.325
<00:04:43.465>but <00:04:43.698>often <00:04:43.931>it's <00:04:44.165>not <00:04:44.398>the <00:04:44.631>right <00:04:44.865>thing,

114
00:04:45.345 --> 00:04:46.845
<00:04:45.345>not <00:04:45.615>the <00:04:45.885>thing <00:04:46.155>the <00:04:46.425>company <00:04:46.695>needs

115
00:04:46.905 --> 00:04:48.565
<00:04:46.905>or <00:04:47.184>our <00:04:47.465>customer <00:04:47.744>needs, <00:04:48.025>et <00:04:48.304>cetera.

116
00:04:49.185 --> 00:04:50.965
<00:04:49.185>The <00:04:49.418>yellow <00:04:49.651>part <00:04:49.885>can <00:04:50.118>be <00:04:50.351>divided <00:04:50.585>further

117
00:04:50.965 --> 00:04:54.045
<00:04:50.965>because <00:04:51.165>we <00:04:51.365>have <00:04:51.565>non-functional <00:04:51.765>requirements, <00:04:51.965>which <00:04:52.165>are <00:04:52.365>yeah,

118
00:04:54.605 --> 00:04:55.685
<00:04:54.605>interesting <00:04:54.929>for <00:04:55.253>our <00:04:55.577>customer.

119
00:04:56.105 --> 00:04:58.605
<00:04:56.105>And <00:04:56.305>some <00:04:56.505>of <00:04:56.705>them <00:04:56.905>are <00:04:57.105>interesting <00:04:57.305>for <00:04:57.505>us

120
00:04:58.605 --> 00:05:00.725
<00:04:58.605>because <00:04:58.838>we <00:04:59.071>as <00:04:59.305>a <00:04:59.538>company <00:04:59.771>develop <00:05:00.005>software

121
00:05:00.755 --> 00:05:02.605
<00:05:00.755>that <00:05:00.988>is <00:05:01.221>our <00:05:01.455>asset <00:05:01.688>in <00:05:01.921>our <00:05:02.155>company.

122
00:05:03.025 --> 00:05:06.245
<00:05:03.025>And <00:05:03.152>we <00:05:03.279>of <00:05:03.406>course <00:05:03.534>have <00:05:03.661>a <00:05:03.788>high <00:05:03.915>interest <00:05:04.043>that <00:05:04.170>this <00:05:04.297>asset, <00:05:04.424>yeah,

123
00:05:06.245 --> 00:05:07.285
<00:05:06.245>lives <00:05:06.432>for <00:05:06.619>a <00:05:06.806>very <00:05:06.993>long <00:05:07.181>time

124
00:05:07.285 --> 00:05:10.525
<00:05:07.285>because <00:05:07.440>we <00:05:07.596>don't <00:05:07.751>want <00:05:07.907>to <00:05:08.062>create <00:05:08.218>revenue <00:05:08.373>with <00:05:08.529>our <00:05:08.685>product

125
00:05:10.625 --> 00:05:11.845
<00:05:10.625>for <00:05:10.808>the <00:05:10.991>next <00:05:11.174>two <00:05:11.357>or <00:05:11.540>three <00:05:11.723>years.

126
00:05:12.225 --> 00:05:15.645
<00:05:12.225>But <00:05:12.352>rather <00:05:12.479>than <00:05:12.606>for <00:05:12.734>10, <00:05:12.861>20 <00:05:12.988>years, <00:05:13.115>maybe <00:05:13.243>if <00:05:13.370>you <00:05:13.497>develop, <00:05:13.625>uh,

127
00:05:15.805 --> 00:05:17.085
<00:05:15.805>ERP <00:05:16.189>systems, <00:05:16.573>for <00:05:16.957>example,

128
00:05:17.785 --> 00:05:19.365
<00:05:17.785>and <00:05:18.065>this <00:05:18.345>is <00:05:18.625>a <00:05:18.905>perfect <00:05:19.185>example

129
00:05:19.365 --> 00:05:22.445
<00:05:19.365>where <00:05:19.505>you <00:05:19.645>can <00:05:19.785>explain <00:05:19.925>everyone <00:05:20.065>in <00:05:20.205>your <00:05:20.345>company <00:05:20.485>why <00:05:20.625>you <00:05:20.765>need

130
00:05:22.555 --> 00:05:24.285
<00:05:22.555>very <00:05:22.788>good <00:05:23.021>requirements <00:05:23.255>in <00:05:23.488>the <00:05:23.721>first <00:05:23.955>place

131
00:05:24.545 --> 00:05:25.685
<00:05:24.545>and <00:05:24.750>why <00:05:24.955>it's <00:05:25.160>a <00:05:25.365>bad <00:05:25.571>idea

132
00:05:25.905 --> 00:05:28.285
<00:05:25.905>to <00:05:26.138>do <00:05:26.371>functional <00:05:26.604>programming <00:05:26.838>all <00:05:27.071>the <00:05:27.304>time.

133
00:05:28.905 --> 00:05:31.685
<00:05:28.905>Now, <00:05:29.060>let's <00:05:29.216>assume <00:05:29.371>we <00:05:29.527>do <00:05:29.682>mistakes <00:05:29.838>in <00:05:29.993>these <00:05:30.149>three <00:05:30.304>fields.

134
00:05:32.695 --> 00:05:34.165
<00:05:32.695>Let's <00:05:32.959>start <00:05:33.224>with <00:05:33.488>the <00:05:33.753>functional <00:05:34.018>part.

135
00:05:34.185 --> 00:05:35.725
<00:05:34.185>And <00:05:34.531>we <00:05:34.878>always <00:05:35.224>think <00:05:35.571>about

136
00:05:35.905 --> 00:05:38.445
<00:05:35.905>how <00:05:36.032>long <00:05:36.159>will <00:05:36.286>it <00:05:36.414>take <00:05:36.541>till <00:05:36.668>our <00:05:36.795>customer <00:05:36.923>reaches <00:05:37.050>out <00:05:37.177>to <00:05:37.304>us

137
00:05:38.465 --> 00:05:40.965
<00:05:38.465>and <00:05:38.665>ask, <00:05:38.865>okay, <00:05:39.065>you've <00:05:39.265>done <00:05:39.465>some <00:05:39.665>mistake <00:05:39.865>in

138
00:05:41.245 --> 00:05:42.325
<00:05:41.245>functional <00:05:41.569>or <00:05:41.893>non-functional <00:05:42.217>fields.

139
00:05:42.705 --> 00:05:45.205
<00:05:42.705>And <00:05:42.860>the <00:05:43.016>second <00:05:43.171>is, <00:05:43.327>how <00:05:43.482>much <00:05:43.638>will <00:05:43.793>it <00:05:43.949>cost <00:05:44.104>to

140
00:05:45.345 --> 00:05:46.605
<00:05:45.345>to <00:05:45.723>remove <00:05:46.101>this <00:05:46.479>defect?

141
00:05:46.745 --> 00:05:48.325
<00:05:46.745>On <00:05:46.978>the <00:05:47.211>function <00:05:47.445>part, <00:05:47.678>it's <00:05:47.911>quite <00:05:48.145>easy.

142
00:05:48.665 --> 00:05:51.045
<00:05:48.665>The <00:05:48.840>no, <00:05:49.015>the <00:05:49.190>customer <00:05:49.365>will <00:05:49.540>reach <00:05:49.715>out <00:05:49.890>very <00:05:50.065>quickly

143
00:05:51.045 --> 00:05:54.045
<00:05:51.045>because <00:05:51.200>they <00:05:51.356>order <00:05:51.511>the <00:05:51.667>function, <00:05:51.822>and <00:05:51.978>this <00:05:52.133>function <00:05:52.289>is <00:05:52.445>more

144
00:05:54.045 --> 00:05:55.645
<00:05:54.045>or <00:05:54.245>less <00:05:54.445>not <00:05:54.645>implemented <00:05:54.845>in <00:05:55.045>the <00:05:55.245>right <00:05:55.445>way.

145
00:05:55.985 --> 00:05:58.965
<00:05:55.985>So <00:05:56.140>in <00:05:56.296>the <00:05:56.451>end, <00:05:56.607>we <00:05:56.762>will <00:05:56.918>get <00:05:57.073>a <00:05:57.229>short <00:05:57.385>notification,

146
00:05:59.185 --> 00:06:02.765
<00:05:59.185>and <00:05:59.292>if <00:05:59.400>we <00:05:59.508>try <00:05:59.615>to <00:05:59.723>fix <00:05:59.831>it, <00:05:59.938>it <00:06:00.046>will <00:06:00.154>be <00:06:00.261>more <00:06:00.369>or <00:06:00.477>less <00:06:00.585>cheap.

147
00:06:02.765 --> 00:06:04.765
<00:06:02.765>Because <00:06:03.115>to <00:06:03.465>create <00:06:03.815>a <00:06:04.164>functionality,

148
00:06:04.865 --> 00:06:07.565
<00:06:04.865>to <00:06:05.065>maintain <00:06:05.265>a <00:06:05.465>functionality <00:06:05.665>we <00:06:05.865>have <00:06:06.065>to <00:06:06.265>change

149
00:06:07.705 --> 00:06:10.805
<00:06:07.705>or <00:06:07.821>look <00:06:07.938>at <00:06:08.055>to <00:06:08.171>a <00:06:08.288>single <00:06:08.405>point <00:06:08.521>in <00:06:08.638>our <00:06:08.755>source <00:06:08.871>code, <00:06:08.988>in <00:06:09.104>theory

150
00:06:11.145 --> 00:06:13.685
<00:06:11.145>and <00:06:11.378>practices, <00:06:11.611>often <00:06:11.844>2, <00:06:12.078>3, <00:06:12.311>4 <00:06:12.544>points,

151
00:06:13.905 --> 00:06:16.565
<00:06:13.905>but <00:06:14.138>limited <00:06:14.371>points <00:06:14.604>we <00:06:14.838>have <00:06:15.071>to <00:06:15.304>investigate

152
00:06:16.665 --> 00:06:19.045
<00:06:16.665>and <00:06:17.015>extend <00:06:17.365>the <00:06:17.715>next <00:06:18.065>part.

153
00:06:19.045 --> 00:06:21.005
<00:06:19.045>The <00:06:19.220>yellow <00:06:19.395>part <00:06:19.570>is <00:06:19.745>a <00:06:19.920>little <00:06:20.095>bit <00:06:20.270>more <00:06:20.445>complicated

154
00:06:21.005 --> 00:06:22.845
<00:06:21.005>because <00:06:21.284>here <00:06:21.565>we <00:06:21.844>speak <00:06:22.125>about <00:06:22.405>concepts,

155
00:06:22.845 --> 00:06:24.765
<00:06:22.845>crosscutting <00:06:23.195>concepts <00:06:23.545>in <00:06:23.895>our <00:06:24.245>application,

156
00:06:24.985 --> 00:06:28.165
<00:06:24.985>and <00:06:25.185>this <00:06:25.385>is <00:06:25.585>often, <00:06:25.785>yeah, <00:06:25.985>not <00:06:26.185>directly <00:06:26.385>recognized

157
00:06:28.165 --> 00:06:29.965
<00:06:28.165>by <00:06:28.320>our <00:06:28.476>customer <00:06:28.631>that <00:06:28.787>we've <00:06:28.942>done <00:06:29.098>a <00:06:29.253>missed <00:06:29.409>mistake <00:06:29.565>there.

158
00:06:29.965 --> 00:06:31.405
<00:06:29.965>It's <00:06:30.181>more <00:06:30.397>or <00:06:30.613>less <00:06:30.828>a <00:06:31.044>midterm <00:06:31.260>thing

159
00:06:32.175 --> 00:06:33.725
<00:06:32.175>means <00:06:32.523>the <00:06:32.872>customer <00:06:33.221>reaches <00:06:33.570>out

160
00:06:33.885 --> 00:06:35.365
<00:06:33.885>after <00:06:34.218>months, <00:06:34.551>years <00:06:34.884>or <00:06:35.217>something.

161
00:06:35.585 --> 00:06:38.165
<00:06:35.585>And <00:06:35.712>if <00:06:35.839>we <00:06:35.966>then <00:06:36.094>have <00:06:36.221>to <00:06:36.348>do <00:06:36.475>a <00:06:36.603>change <00:06:36.730>in <00:06:36.857>this <00:06:36.984>field,

162
00:06:38.275 --> 00:06:40.605
<00:06:38.275>it's <00:06:38.474>way <00:06:38.674>more <00:06:38.875>expensive <00:06:39.075>because <00:06:39.275>this <00:06:39.474>is <00:06:39.674>more

163
00:06:40.605 --> 00:06:43.325
<00:06:40.605>or <00:06:40.838>less <00:06:41.071>cross-cutting <00:06:41.305>through <00:06:41.538>our <00:06:41.771>entire <00:06:42.005>application.

164
00:06:44.145 --> 00:06:47.205
<00:06:44.145>The <00:06:44.300>last <00:06:44.456>part, <00:06:44.611>the <00:06:44.767>red <00:06:44.922>part <00:06:45.078>is <00:06:45.233>the <00:06:45.389>red <00:06:45.544>is,

165
00:06:47.205 --> 00:06:48.325
<00:06:47.205>uh, <00:06:47.406>red <00:06:47.608>colors <00:06:47.809>for <00:06:48.011>a <00:06:48.212>purpose.

166
00:06:48.715 --> 00:06:51.405
<00:06:48.715>It's <00:06:48.915>much <00:06:49.115>more <00:06:49.315>complicated <00:06:49.515>because <00:06:49.715>this <00:06:49.915>is <00:06:50.115>more

167
00:06:51.405 --> 00:06:54.005
<00:06:51.405>or <00:06:51.604>less <00:06:51.804>not <00:06:52.005>very <00:06:52.205>interesting <00:06:52.405>for <00:06:52.604>our <00:06:52.804>customer.

168
00:06:54.065 --> 00:06:56.765
<00:06:54.065>Our <00:06:54.205>customers <00:06:54.344>not, <00:06:54.485>does <00:06:54.625>not <00:06:54.765>care <00:06:54.905>if <00:06:55.045>our <00:06:55.185>source <00:06:55.325>code <00:06:55.465>is

169
00:06:56.765 --> 00:06:59.285
<00:06:56.765>readable, <00:06:57.115>maintainable, <00:06:57.465>replaceable, <00:06:57.815>et <00:06:58.164>cetera.

170
00:06:59.515 --> 00:07:01.165
<00:06:59.515>It's <00:06:59.748>more <00:06:59.981>or <00:07:00.215>less <00:07:00.448>our <00:07:00.681>concern <00:07:00.914>to,

171
00:07:01.185 --> 00:07:02.645
<00:07:01.185>to <00:07:01.404>reach <00:07:01.623>this <00:07:01.842>gold <00:07:02.061>as <00:07:02.280>a <00:07:02.498>company.

172
00:07:03.145 --> 00:07:06.365
<00:07:03.145>So <00:07:03.300>if <00:07:03.456>our <00:07:03.611>customer, <00:07:03.767>customer <00:07:03.922>finally <00:07:04.078>reached <00:07:04.233>out <00:07:04.389>to <00:07:04.544>us

173
00:07:06.365 --> 00:07:09.245
<00:07:06.365>and <00:07:06.520>says, <00:07:06.676>okay, <00:07:06.831>we <00:07:06.987>have <00:07:07.142>problems <00:07:07.298>with <00:07:07.453>too <00:07:07.609>high <00:07:07.765>cost

174
00:07:09.265 --> 00:07:11.245
<00:07:09.265>for <00:07:09.498>new <00:07:09.731>features <00:07:09.965>or <00:07:10.198>too <00:07:10.431>many <00:07:10.664>bucks,

175
00:07:11.595 --> 00:07:13.725
<00:07:11.595>then <00:07:11.795>we <00:07:11.995>have <00:07:12.195>a <00:07:12.395>an <00:07:12.595>absolute <00:07:12.795>big <00:07:12.995>problem

176
00:07:13.725 --> 00:07:15.845
<00:07:13.725>because <00:07:13.958>for <00:07:14.191>the <00:07:14.425>red <00:07:14.658>part, <00:07:14.891>we <00:07:15.125>have

177
00:07:15.845 --> 00:07:17.525
<00:07:15.845>to <00:07:16.195>change <00:07:16.545>our <00:07:16.895>entire <00:07:17.245>application.

178
00:07:18.185 --> 00:07:20.885
<00:07:18.185>And <00:07:18.340>this <00:07:18.496>red <00:07:18.651>part <00:07:18.807>over <00:07:18.962>there <00:07:19.118>that <00:07:19.273>is <00:07:19.429>mostly <00:07:19.585>influenced

179
00:07:21.025 --> 00:07:23.325
<00:07:21.025>by <00:07:21.304>software <00:07:21.585>architecture <00:07:21.864>and <00:07:22.145>software <00:07:22.424>design.

180
00:07:23.425 --> 00:07:26.045
<00:07:23.425>The <00:07:23.580>yellow <00:07:23.736>part <00:07:23.891>is <00:07:24.047>a <00:07:24.202>little <00:07:24.358>bit <00:07:24.513>influenced <00:07:24.669>by, <00:07:24.825>um,

181
00:07:26.145 --> 00:07:28.845
<00:07:26.145>by <00:07:26.344>system <00:07:26.544>architecture, <00:07:26.745>but <00:07:26.945>in <00:07:27.145>general, <00:07:27.344>it's <00:07:27.544>more

182
00:07:28.845 --> 00:07:30.725
<00:07:28.845>or <00:07:29.195>less <00:07:29.545>the <00:07:29.895>software <00:07:30.245>architecture

183
00:07:30.725 --> 00:07:33.245
<00:07:30.725>and <00:07:30.880>software <00:07:31.036>design, <00:07:31.191>which <00:07:31.347>takes <00:07:31.502>care <00:07:31.658>of <00:07:31.813>this <00:07:31.969>red <00:07:32.125>path.

184
00:07:33.345 --> 00:07:35.365
<00:07:33.345>The <00:07:33.578>software <00:07:33.811>design <00:07:34.045>and <00:07:34.278>architecture <00:07:34.511>is <00:07:34.745>more

185
00:07:35.365 --> 00:07:38.725
<00:07:35.365>or <00:07:35.505>less <00:07:35.645>an <00:07:35.785>activity <00:07:35.925>we <00:07:36.065>do <00:07:36.205>as <00:07:36.345>a <00:07:36.485>company <00:07:36.625>to <00:07:36.765>ensure

186
00:07:38.725 --> 00:07:41.285
<00:07:38.725>that <00:07:38.880>our <00:07:39.036>software <00:07:39.191>will <00:07:39.347>live <00:07:39.502>for <00:07:39.658>a <00:07:39.813>very <00:07:39.969>long <00:07:40.125>time,

187
00:07:41.425 --> 00:07:43.565
<00:07:41.425>can <00:07:41.705>be <00:07:41.985>extended <00:07:42.265>maintained, <00:07:42.545>et <00:07:42.825>cetera.

188
00:07:44.105 --> 00:07:47.285
<00:07:44.105>If <00:07:44.260>we <00:07:44.416>develop <00:07:44.571>source <00:07:44.727>code, <00:07:44.882>we <00:07:45.038>write <00:07:45.193>statement <00:07:45.349>in <00:07:45.505>each

189
00:07:47.285 --> 00:07:48.565
<00:07:47.284>and <00:07:47.669>every <00:07:48.053>programming <00:07:48.437>language.

190
00:07:48.585 --> 00:07:52.645
<00:07:48.585>We <00:07:48.740>write <00:07:48.896>loops, <00:07:49.051>we <00:07:49.207>write <00:07:49.362>if <00:07:49.518>clauses <00:07:49.673>operators <00:07:49.829>or <00:07:49.984>whatever.

191
00:07:53.065 --> 00:07:55.805
<00:07:53.065>And <00:07:53.220>oftentimes <00:07:53.376>if <00:07:53.531>we <00:07:53.687>do <00:07:53.842>this, <00:07:53.998>just <00:07:54.153>a <00:07:54.309>single <00:07:54.465>file

192
00:07:55.805 --> 00:07:58.885
<00:07:55.805>or <00:07:55.945>a <00:07:56.085>single <00:07:56.225>method, <00:07:56.365>this <00:07:56.505>method <00:07:56.645>get <00:07:56.785>messed <00:07:56.925>up <00:07:57.065>very <00:07:57.205>quickly

193
00:07:58.985 --> 00:08:01.445
<00:07:58.985>so <00:07:59.218>it's <00:07:59.451>not <00:07:59.685>maintainable, <00:07:59.918>extensible, <00:08:00.151>et <00:08:00.385>cetera.

194
00:08:01.705 --> 00:08:06.165
<00:08:01.705>So <00:08:01.860>we <00:08:02.016>try <00:08:02.171>to <00:08:02.327>modularize <00:08:02.482>our <00:08:02.638>code <00:08:02.793>with <00:08:02.949>methods, <00:08:03.104>and

195
00:08:06.455 --> 00:08:09.285
<00:08:06.455>after <00:08:06.582>a <00:08:06.709>few <00:08:06.836>months <00:08:06.964>or <00:08:07.091>years, <00:08:07.218>we <00:08:07.345>get <00:08:07.473>a <00:08:07.600>lot <00:08:07.727>of <00:08:07.854>methods.

196
00:08:09.385 --> 00:08:12.285
<00:08:09.385>So <00:08:09.560>we <00:08:09.735>try <00:08:09.909>to <00:08:10.085>group <00:08:10.260>them <00:08:10.435>further <00:08:10.610>into <00:08:10.784>classes.

197
00:08:12.595 --> 00:08:13.725
<00:08:12.595>Classes <00:08:13.103>of <00:08:13.612>course.

198
00:08:13.995 --> 00:08:17.885
<00:08:13.995>Also <00:08:14.150>a <00:08:14.306>very <00:08:14.461>small <00:08:14.617>container <00:08:14.772>in <00:08:14.928>a <00:08:15.083>project <00:08:15.239>gets <00:08:15.395>summarized

199
00:08:17.905 --> 00:08:21.405
<00:08:17.905>by <00:08:18.104>components, <00:08:18.304>then <00:08:18.505>by <00:08:18.705>layers, <00:08:18.905>then <00:08:19.104>by <00:08:19.304>services.

200
00:08:21.705 --> 00:08:23.445
<00:08:21.705>And <00:08:21.984>finally <00:08:22.265>we <00:08:22.544>reach <00:08:22.825>our <00:08:23.104>application.

201
00:08:23.475 --> 00:08:25.245
<00:08:23.475>This <00:08:23.755>is <00:08:24.035>a <00:08:24.315>so-called <00:08:24.595>layer <00:08:24.875>model.

202
00:08:25.585 --> 00:08:27.245
<00:08:25.585>And <00:08:25.784>in <00:08:25.984>this <00:08:26.185>layer <00:08:26.385>model, <00:08:26.585>which <00:08:26.784>is <00:08:26.984>more

203
00:08:27.245 --> 00:08:30.725
<00:08:27.245>or <00:08:27.420>less <00:08:27.595>specific <00:08:27.770>for <00:08:27.945>certain <00:08:28.120>kinds <00:08:28.295>of <00:08:28.470>development <00:08:28.645>languages,

204
00:08:30.725 --> 00:08:33.525
<00:08:30.725>this <00:08:30.880>is <00:08:31.036>applicable <00:08:31.191>to <00:08:31.347>C <00:08:31.502>sharp <00:08:31.658>to <00:08:31.813>Java, <00:08:31.969>for <00:08:32.125>example.

205
00:08:34.225 --> 00:08:36.725
<00:08:34.225>Um, <00:08:34.458>that <00:08:34.691>can, <00:08:34.925>um, <00:08:35.158>this <00:08:35.391>can, <00:08:35.625>uh,

206
00:08:36.725 --> 00:08:38.645
<00:08:36.725>differ <00:08:37.005>from <00:08:37.284>from <00:08:37.565>platform <00:08:37.845>to <00:08:38.125>platform.

207
00:08:38.865 --> 00:08:40.765
<00:08:38.865>And <00:08:39.145>if <00:08:39.424>we <00:08:39.705>implement <00:08:39.985>functional <00:08:40.265>requirements,

208
00:08:40.915 --> 00:08:43.685
<00:08:40.914>then <00:08:41.194>we <00:08:41.474>implement <00:08:41.755>logic, <00:08:42.034>so-called <00:08:42.314>logic.

209
00:08:43.705 --> 00:08:46.965
<00:08:43.705>And <00:08:43.860>logic <00:08:44.016>all <00:08:44.171>the <00:08:44.327>time <00:08:44.482>is <00:08:44.638>just <00:08:44.793>implemented <00:08:44.949>by <00:08:45.105>statements

210
00:08:47.475 --> 00:08:50.605
<00:08:47.475>with <00:08:47.602>no <00:08:47.729>method <00:08:47.856>in <00:08:47.984>the <00:08:48.111>world <00:08:48.238>or <00:08:48.365>no <00:08:48.493>class <00:08:48.620>or <00:08:48.747>no <00:08:48.875>library.

211
00:08:50.825 --> 00:08:53.325
<00:08:50.825>You <00:08:51.058>extend <00:08:51.291>your <00:08:51.525>application <00:08:51.758>with <00:08:51.991>new <00:08:52.225>functionality,

212
00:08:53.425 --> 00:08:55.925
<00:08:53.425>but <00:08:53.599>with <00:08:53.775>the <00:08:53.949>statements <00:08:54.125>in <00:08:54.300>this <00:08:54.474>methods, <00:08:54.650>this <00:08:54.824>classes

213
00:08:56.385 --> 00:08:58.805
<00:08:56.385>and <00:08:56.618>this, <00:08:56.851>uh, <00:08:57.085>this <00:08:57.318>libraries, <00:08:57.551>the <00:08:57.785>rest,

214
00:08:58.905 --> 00:09:01.685
<00:08:58.905>you <00:08:59.105>can <00:08:59.305>see <00:08:59.505>all <00:08:59.704>layers <00:08:59.905>above <00:09:00.105>statements <00:09:00.305>are

215
00:09:01.905 --> 00:09:02.925
<00:09:01.905>for <00:09:02.211>the <00:09:02.516>structure <00:09:02.823>and

216
00:09:02.945 --> 00:09:04.925
<00:09:02.945>for <00:09:03.225>the <00:09:03.505>architecture <00:09:03.785>of <00:09:04.065>our <00:09:04.345>application.

217
00:09:05.025 --> 00:09:07.565
<00:09:05.025>The <00:09:05.258>term <00:09:05.491>architecture <00:09:05.725>is <00:09:05.958>also <00:09:06.191>very <00:09:06.425>complicated

218
00:09:07.675 --> 00:09:10.205
<00:09:07.675>because <00:09:07.875>you <00:09:08.074>will <00:09:08.275>get <00:09:08.474>as <00:09:08.675>many <00:09:08.875>different <00:09:09.074>answers

219
00:09:10.915 --> 00:09:12.365
<00:09:10.915>what <00:09:11.350>software <00:09:11.785>architecture <00:09:12.220>is,

220
00:09:12.635 --> 00:09:14.245
<00:09:12.635>depending <00:09:12.868>on <00:09:13.101>how <00:09:13.335>many <00:09:13.568>people <00:09:13.801>you <00:09:14.035>ask.

221
00:09:14.545 --> 00:09:16.565
<00:09:14.545>But <00:09:14.700>for <00:09:14.856>me, <00:09:15.011>this <00:09:15.167>is <00:09:15.322>more <00:09:15.478>or <00:09:15.633>less <00:09:15.789>the <00:09:15.944>structure

222
00:09:16.905 --> 00:09:18.045
<00:09:16.905>and <00:09:17.418>the <00:09:17.930>architecture.

223
00:09:18.185 --> 00:09:20.565
<00:09:18.185>And <00:09:18.385>this <00:09:18.584>architecture <00:09:18.785>term <00:09:18.984>is <00:09:19.185>now <00:09:19.385>divided <00:09:19.584>into

224
00:09:20.565 --> 00:09:21.765
<00:09:20.565>three <00:09:20.925>different <00:09:21.285>sub <00:09:21.645>terms.

225
00:09:21.865 --> 00:09:23.125
<00:09:21.865>The <00:09:22.148>first <00:09:22.432>is <00:09:22.715>software <00:09:22.999>design.

226
00:09:23.845 --> 00:09:25.885
<00:09:23.845>Software <00:09:24.078>design <00:09:24.311>is <00:09:24.545>a <00:09:24.778>very <00:09:25.011>difficult <00:09:25.245>one

227
00:09:25.885 --> 00:09:27.485
<00:09:25.885>because <00:09:26.165>we <00:09:26.444>as <00:09:26.725>a <00:09:27.005>software <00:09:27.285>developer,

228
00:09:27.625 --> 00:09:28.965
<00:09:27.625>we <00:09:27.926>have <00:09:28.228>to <00:09:28.529>implement <00:09:28.831>functionality.

229
00:09:29.605 --> 00:09:31.925
<00:09:29.605>Normally <00:09:29.780>we <00:09:29.955>could <00:09:30.130>just <00:09:30.305>put <00:09:30.480>it <00:09:30.655>into <00:09:30.830>our <00:09:31.005>software.

230
00:09:32.045 --> 00:09:32.725
<00:09:32.045>I <00:09:32.249>don't <00:09:32.453>think <00:09:32.657>about

231
00:09:32.725 --> 00:09:34.885
<00:09:32.725>extensibility, <00:09:33.191>maintainability, <00:09:33.658>et <00:09:34.125>cetera.

232
00:09:35.075 --> 00:09:36.765
<00:09:35.075>Then <00:09:35.355>we <00:09:35.635>wouldn't <00:09:35.915>do <00:09:36.195>software <00:09:36.475>design.

233
00:09:37.045 --> 00:09:38.645
<00:09:37.045>Software <00:09:37.278>design <00:09:37.511>is <00:09:37.745>useful <00:09:37.978>if <00:09:38.211>I <00:09:38.444>want

234
00:09:38.645 --> 00:09:39.925
<00:09:38.645>to <00:09:39.029>implement <00:09:39.413>this <00:09:39.796>functionality.

235
00:09:40.195 --> 00:09:43.685
<00:09:40.195>Sustainable <00:09:40.370>means <00:09:40.545>I <00:09:40.720>implement <00:09:40.895>it <00:09:41.070>in <00:09:41.245>a <00:09:41.420>maintainable <00:09:41.595>way,

236
00:09:43.725 --> 00:09:46.605
<00:09:43.725>testable <00:09:43.925>way, <00:09:44.125>extensible <00:09:44.325>way, <00:09:44.525>et <00:09:44.725>cetera, <00:09:44.925>et <00:09:45.125>cetera.

237
00:09:47.265 --> 00:09:49.645
<00:09:47.265>The <00:09:47.465>next <00:09:47.665>level <00:09:47.865>above <00:09:48.064>it <00:09:48.265>is <00:09:48.465>software <00:09:48.665>architecture.

238
00:09:49.645 --> 00:09:51.205
<00:09:49.645>And <00:09:49.925>the <00:09:50.204>software <00:09:50.485>architecture <00:09:50.765>is <00:09:51.045>more

239
00:09:51.205 --> 00:09:53.325
<00:09:51.205>or <00:09:51.438>less <00:09:51.671>the <00:09:51.905>structure <00:09:52.138>of <00:09:52.371>my <00:09:52.605>application.

240
00:09:53.665 --> 00:09:58.285
<00:09:53.665>Inside <00:09:53.839>one <00:09:54.015>service <00:09:54.189>above, <00:09:54.365>we <00:09:54.540>have <00:09:54.714>the <00:09:54.890>system <00:09:55.064>architecture,

241
00:09:58.285 --> 00:09:59.485
<00:09:58.285>which <00:09:58.645>describes <00:09:59.005>how <00:09:59.365>many

242
00:10:00.085 --> 00:10:02.645
<00:10:00.085>services <00:10:00.365>our <00:10:00.645>application <00:10:00.925>is <00:10:01.205>divided <00:10:01.485>into.

243
00:10:03.025 --> 00:10:05.125
<00:10:03.025>And <00:10:03.258>um, <00:10:03.491>the <00:10:03.725>software <00:10:03.958>architecture <00:10:04.191>is <00:10:04.425>more

244
00:10:05.125 --> 00:10:07.405
<00:10:05.125>or <00:10:05.325>less <00:10:05.525>the <00:10:05.725>inner <00:10:05.925>structure <00:10:06.125>of <00:10:06.325>each <00:10:06.525>service.

245
00:10:07.595 --> 00:10:10.965
<00:10:07.595>This <00:10:07.735>is <00:10:07.875>more <00:10:08.015>or <00:10:08.155>less <00:10:08.295>my <00:10:08.435>architecture <00:10:08.575>world <00:10:08.715>I <00:10:08.855>live <00:10:08.995>in

246
00:10:10.965 --> 00:10:13.805
<00:10:10.965>or <00:10:11.120>the <00:10:11.276>my <00:10:11.431>terms <00:10:11.587>I <00:10:11.742>use <00:10:11.898>in <00:10:12.053>a <00:10:12.209>practical <00:10:12.365>way.

247
00:10:13.805 --> 00:10:15.485
<00:10:13.805>That <00:10:14.084>means <00:10:14.364>if <00:10:14.645>we <00:10:14.925>create <00:10:15.204>applications

248
00:10:15.675 --> 00:10:18.245
<00:10:15.675>with <00:10:15.849>these <00:10:16.025>different <00:10:16.199>layers, <00:10:16.375>you've <00:10:16.550>seen, <00:10:16.724>we <00:10:16.900>have <00:10:17.074>the,

249
00:10:18.385 --> 00:10:21.525
<00:10:18.385>at <00:10:18.560>first <00:10:18.735>the <00:10:18.910>software, <00:10:19.085>the <00:10:19.260>system <00:10:19.435>architecture, <00:10:19.610>which <00:10:19.785>tries

250
00:10:21.585 --> 00:10:25.005
<00:10:21.585>to <00:10:21.760>divide <00:10:21.935>our <00:10:22.110>system <00:10:22.285>into <00:10:22.460>different <00:10:22.635>services, <00:10:22.810>which <00:10:22.985>more

251
00:10:25.005 --> 00:10:26.885
<00:10:25.005>or <00:10:25.238>less <00:10:25.471>in <00:10:25.705>in <00:10:25.938>summary <00:10:26.171>are <00:10:26.405>the

252
00:10:27.085 --> 00:10:28.365
<00:10:27.085>functionality <00:10:27.469>of <00:10:27.853>our <00:10:28.237>application.

253
00:10:28.815 --> 00:10:31.285
<00:10:28.815>Below <00:10:29.048>that <00:10:29.281>layer, <00:10:29.515>our <00:10:29.748>software <00:10:29.981>architect <00:10:30.215>describes

254
00:10:31.285 --> 00:10:32.645
<00:10:31.285>how <00:10:31.591>each <00:10:31.896>layer <00:10:32.203>is <00:10:32.509>structured.

255
00:10:32.645 --> 00:10:33.845
<00:10:32.645>Further. <00:10:33.005>In <00:10:33.365>this <00:10:33.725>example,

256
00:10:34.185 --> 00:10:36.165
<00:10:34.185>we <00:10:34.464>have <00:10:34.744>two <00:10:35.025>times <00:10:35.305>multi-layer <00:10:35.584>architecture,

257
00:10:36.345 --> 00:10:38.805
<00:10:36.345>but <00:10:36.500>we <00:10:36.656>could <00:10:36.811>have <00:10:36.967>a <00:10:37.122>multi-layer <00:10:37.278>architecture <00:10:37.433>in <00:10:37.589>one <00:10:37.745>service,

258
00:10:39.005 --> 00:10:40.605
<00:10:39.005>a <00:10:39.285>plugin <00:10:39.564>architecture <00:10:39.845>in <00:10:40.125>another <00:10:40.405>service.

259
00:10:40.865 --> 00:10:42.285
<00:10:40.865>So <00:10:41.120>that's, <00:10:41.376>that <00:10:41.631>doesn't <00:10:41.887>really <00:10:42.143>matter.

260
00:10:42.305 --> 00:10:43.765
<00:10:42.305>You <00:10:42.633>should <00:10:42.962>of <00:10:43.290>course <00:10:43.619>try

261
00:10:43.765 --> 00:10:46.125
<00:10:43.765>to <00:10:43.965>keep <00:10:44.165>a <00:10:44.365>consistent <00:10:44.564>software <00:10:44.765>architecture <00:10:44.965>over <00:10:45.165>your

262
00:10:46.125 --> 00:10:47.285
<00:10:46.125>service <00:10:47.169>architecture.

263
00:10:47.585 --> 00:10:49.845
<00:10:47.585>But <00:10:47.818>um, <00:10:48.051>that's <00:10:48.285>a <00:10:48.518>completely <00:10:48.751>different <00:10:48.985>story.

264
00:10:50.225 --> 00:10:53.085
<00:10:50.225>So <00:10:50.380>below <00:10:50.536>it, <00:10:50.691>we <00:10:50.847>have <00:10:51.002>the <00:10:51.158>software <00:10:51.313>developer <00:10:51.469>which <00:10:51.625>implement

265
00:10:53.405 --> 00:10:55.125
<00:10:53.405>functionality, <00:10:53.755>functionality <00:10:54.105>in <00:10:54.454>a <00:10:54.805>way

266
00:10:55.155 --> 00:10:58.045
<00:10:55.155>that <00:10:55.388>this <00:10:55.621>functionality <00:10:55.855>is <00:10:56.088>sustainable, <00:10:56.321>means <00:10:56.555>extensible,

267
00:10:58.565 --> 00:10:59.645
<00:10:58.565>maintainable, <00:10:59.051>et <00:10:59.537>cetera.

268
00:11:00.105 --> 00:11:02.645
<00:11:00.105>So <00:11:00.221>in <00:11:00.338>the <00:11:00.455>end, <00:11:00.571>if <00:11:00.688>you <00:11:00.805>think <00:11:00.921>a <00:11:01.038>little <00:11:01.155>bit <00:11:01.271>more <00:11:01.388>about <00:11:01.505>it,

269
00:11:02.645 --> 00:11:04.645
<00:11:02.645>everything <00:11:02.925>we <00:11:03.204>do <00:11:03.485>in <00:11:03.765>software <00:11:04.045>development

270
00:11:04.725 --> 00:11:08.005
<00:11:04.725>and <00:11:04.900>software <00:11:05.075>architecture <00:11:05.250>in <00:11:05.425>general, <00:11:05.600>we <00:11:05.775>try <00:11:05.950>to <00:11:06.125>implement

271
00:11:08.535 --> 00:11:11.205
<00:11:08.535>large <00:11:08.814>tree <00:11:09.094>structures <00:11:09.375>from <00:11:09.655>the <00:11:09.935>application

272
00:11:11.205 --> 00:11:14.085
<00:11:11.205>of <00:11:11.380>a <00:11:11.555>service <00:11:11.730>layer, <00:11:11.905>component <00:11:12.080>classes, <00:11:12.255>methods, <00:11:12.430>et <00:11:12.605>cetera.

273
00:11:14.425 --> 00:11:16.765
<00:11:14.425>And <00:11:14.580>we <00:11:14.736>are <00:11:14.891>not <00:11:15.047>done <00:11:15.202>at <00:11:15.358>this <00:11:15.513>point, <00:11:15.669>of <00:11:15.824>course,

274
00:11:16.935 --> 00:11:19.245
<00:11:16.935>let's <00:11:17.135>consider <00:11:17.334>this <00:11:17.535>is <00:11:17.734>an <00:11:17.935>C <00:11:18.135>sharp <00:11:18.334>application.

275
00:11:19.545 --> 00:11:23.445
<00:11:19.545>Our <00:11:19.685>C <00:11:19.824>sharp <00:11:19.964>compiler <00:11:20.104>would <00:11:20.245>add <00:11:20.385>another <00:11:20.525>layer <00:11:20.665>below <00:11:20.805>it <00:11:20.944>for,

276
00:11:23.705 --> 00:11:26.525
<00:11:23.705>uh, <00:11:23.905>MZ <00:11:24.105>code <00:11:24.305>for <00:11:24.505>machine, <00:11:24.705>independent <00:11:24.905>language <00:11:25.105>code.

277
00:11:26.875 --> 00:11:28.965
<00:11:26.875>Then <00:11:27.108>if <00:11:27.341>I <00:11:27.575>execute <00:11:27.808>this <00:11:28.041>application, <00:11:28.275>the

278
00:11:29.515 --> 00:11:32.045
<00:11:29.515>just <00:11:29.715>in <00:11:29.915>time <00:11:30.115>compiler <00:11:30.314>would <00:11:30.515>create <00:11:30.715>another <00:11:30.915>layer

279
00:11:32.045 --> 00:11:33.205
<00:11:32.045>with <00:11:32.567>assemble <00:11:33.089>instructions.

280
00:11:33.205 --> 00:11:35.405
<00:11:33.205>And <00:11:33.405>if <00:11:33.605>I <00:11:33.805>then <00:11:34.005>execute <00:11:34.205>this, <00:11:34.405>assemble <00:11:34.605>instructions,

281
00:11:35.625 --> 00:11:38.325
<00:11:35.625>we <00:11:35.765>would <00:11:35.905>even <00:11:36.045>get <00:11:36.185>another <00:11:36.325>layer <00:11:36.465>with <00:11:36.605>binary <00:11:36.745>code <00:11:36.885>on <00:11:37.025>it.

282
00:11:38.385 --> 00:11:42.445
<00:11:38.385>So <00:11:38.560>every <00:11:38.735>application <00:11:38.910>can <00:11:39.085>be <00:11:39.260>imagined <00:11:39.435>as <00:11:39.610>a <00:11:39.785>large,

283
00:11:42.515 --> 00:11:43.525
<00:11:42.515>very <00:11:42.969>large <00:11:43.424>structure.

284
00:11:44.625 --> 00:11:46.805
<00:11:44.625>The <00:11:44.800>problem <00:11:44.975>with <00:11:45.150>this <00:11:45.325>structure <00:11:45.500>in <00:11:45.675>the <00:11:45.850>end <00:11:46.025>is

285
00:11:47.115 --> 00:11:49.725
<00:11:47.115>that <00:11:47.290>we <00:11:47.465>have <00:11:47.640>multiple <00:11:47.815>ways <00:11:47.990>to <00:11:48.165>create <00:11:48.340>this <00:11:48.515>structure.

286
00:11:50.265 --> 00:11:52.965
<00:11:50.265>And <00:11:50.498>creating <00:11:50.731>this <00:11:50.965>structure <00:11:51.198>is <00:11:51.431>called <00:11:51.665>modularization.

287
00:11:53.145 --> 00:11:54.565
<00:11:53.145>And <00:11:53.358>I <00:11:53.571>hate <00:11:53.784>this <00:11:53.997>word <00:11:54.210>in <00:11:54.423>English,

288
00:11:55.185 --> 00:11:57.925
<00:11:55.185>and <00:11:55.464>modularization <00:11:55.744>is <00:11:56.025>kind <00:11:56.305>of <00:11:56.584>difficult.

289
00:11:58.435 --> 00:12:00.205
<00:11:58.435>I'll <00:11:58.668>give <00:11:58.901>you <00:11:59.135>a <00:11:59.368>completely <00:11:59.601>other <00:11:59.834>example.

290
00:12:00.705 --> 00:12:04.565
<00:12:00.705>We <00:12:00.938>could <00:12:01.171>try <00:12:01.405>to <00:12:01.638>modularize <00:12:01.871>our <00:12:02.105>earth.

291
00:12:05.425 --> 00:12:08.485
<00:12:05.425>So <00:12:05.658>modular <00:12:05.891>modularizing <00:12:06.125>our <00:12:06.358>earth <00:12:06.591>would <00:12:06.824>mean

292
00:12:08.555 --> 00:12:09.565
<00:12:08.555>that <00:12:08.782>we <00:12:09.009>split <00:12:09.236>it <00:12:09.464>up.

293
00:12:09.585 --> 00:12:13.685
<00:12:09.585>For <00:12:09.760>example, <00:12:09.935>in <00:12:10.110>land <00:12:10.285>and <00:12:10.460>water, <00:12:10.635>that's <00:12:10.810>one <00:12:10.985>possibility.

294
00:12:14.185 --> 00:12:16.445
<00:12:14.185>Of <00:12:14.359>course, <00:12:14.535>we <00:12:14.709>could <00:12:14.885>take <00:12:15.060>a <00:12:15.234>completely <00:12:15.410>different <00:12:15.584>approach

295
00:12:16.465 --> 00:12:19.365
<00:12:16.465>and <00:12:16.640>could <00:12:16.815>say, <00:12:16.990>okay, <00:12:17.165>we <00:12:17.340>divided <00:12:17.515>into <00:12:17.690>different <00:12:17.865>continents,

296
00:12:19.365 --> 00:12:24.085
<00:12:19.365>Europe, <00:12:19.565>Asia, <00:12:19.765>Australia, <00:12:19.965>America, <00:12:20.165>north <00:12:20.365>America, <00:12:20.565>et <00:12:20.765>cetera.

297
00:12:24.625 --> 00:12:27.725
<00:12:24.625>So <00:12:24.858>which <00:12:25.091>one <00:12:25.325>is <00:12:25.558>the <00:12:25.791>superior <00:12:26.025>modularization?

298
00:12:29.315 --> 00:12:31.495
<00:12:29.315>You <00:12:29.548>can't <00:12:29.781>answer <00:12:30.015>this, <00:12:30.248>that <00:12:30.481>question <00:12:30.715>seriously,

299
00:12:31.495 --> 00:12:33.455
<00:12:31.495>because <00:12:31.695>you <00:12:31.895>don't <00:12:32.095>know <00:12:32.295>what <00:12:32.495>we <00:12:32.695>will <00:12:32.895>use

300
00:12:33.455 --> 00:12:34.655
<00:12:33.455>our <00:12:33.995>modularization <00:12:34.535>for.

301
00:12:35.075 --> 00:12:36.975
<00:12:35.075>If <00:12:35.275>you <00:12:35.475>want <00:12:35.675>to, <00:12:35.875>uh, <00:12:36.075>I <00:12:36.275>don't <00:12:36.475>know,

302
00:12:37.225 --> 00:12:39.415
<00:12:37.225>categorize <00:12:37.575>all <00:12:37.925>animals <00:12:38.275>on <00:12:38.625>earth,

303
00:12:39.675 --> 00:12:42.175
<00:12:39.675>modularization <00:12:39.908>one <00:12:40.141>would <00:12:40.375>be <00:12:40.608>better, <00:12:40.841>I <00:12:41.074>guess.

304
00:12:42.795 --> 00:12:44.095
<00:12:42.795>But <00:12:43.029>I <00:12:43.263>give <00:12:43.497>you <00:12:43.731>a <00:12:43.965>scope.

305
00:12:44.225 --> 00:12:47.415
<00:12:44.225>Let's <00:12:44.352>assume <00:12:44.479>we <00:12:44.606>want <00:12:44.734>to <00:12:44.861>create <00:12:44.988>a <00:12:45.115>system <00:12:45.243>where <00:12:45.370>we <00:12:45.497>are <00:12:45.625>able

306
00:12:47.415 --> 00:12:50.535
<00:12:47.415>to <00:12:47.615>address <00:12:47.814>each <00:12:48.015>and <00:12:48.214>every <00:12:48.415>room, <00:12:48.615>living <00:12:48.814>room

307
00:12:50.595 --> 00:12:52.455
<00:12:50.595>or <00:12:50.875>conference <00:12:51.155>room <00:12:51.435>on <00:12:51.715>this <00:12:51.995>planet.

308
00:12:53.795 --> 00:12:55.535
<00:12:53.795>In <00:12:54.028>this <00:12:54.261>case, <00:12:54.495>it's <00:12:54.728>much <00:12:54.961>more <00:12:55.194>obvious

309
00:12:55.765 --> 00:12:58.855
<00:12:55.765>that <00:12:55.965>the <00:12:56.165>modularization <00:12:56.365>two <00:12:56.564>is <00:12:56.765>much <00:12:56.965>better <00:12:57.165>compared

310
00:12:58.855 --> 00:13:01.855
<00:12:58.855>to <00:12:59.010>the <00:12:59.166>left <00:12:59.321>one <00:12:59.477>because <00:12:59.632>the <00:12:59.788>water <00:12:59.943>branch <00:13:00.099>in <00:13:00.255>modularization

311
00:13:01.855 --> 00:13:03.175
<00:13:01.855>one <00:13:02.053>would <00:13:02.251>be <00:13:02.449>more <00:13:02.646>or <00:13:02.844>less <00:13:03.043>useless.

312
00:13:03.915 --> 00:13:06.615
<00:13:03.915>So <00:13:04.148>this <00:13:04.381>is <00:13:04.615>for <00:13:04.848>this <00:13:05.081>so-called <00:13:05.314>scope

313
00:13:07.035 --> 00:13:09.975
<00:13:07.035>as <00:13:07.314>the <00:13:07.594>superior <00:13:07.875>modularization, <00:13:08.155>modularization <00:13:08.435>two,

314
00:13:10.475 --> 00:13:12.055
<00:13:10.475>and <00:13:10.755>we <00:13:11.035>even <00:13:11.315>get <00:13:11.595>a <00:13:11.875>perfect

315
00:13:12.655 --> 00:13:16.695
<00:13:12.655>analyzability <00:13:12.810>means <00:13:12.966>if <00:13:13.121>we <00:13:13.277>address <00:13:13.432>a <00:13:13.588>room <00:13:13.743>with <00:13:13.899>a <00:13:14.055>system,

316
00:13:17.005 --> 00:13:18.495
<00:13:17.005>it's <00:13:17.273>more <00:13:17.541>or <00:13:17.809>less <00:13:18.077>human <00:13:18.346>readable.

317
00:13:18.675 --> 00:13:21.255
<00:13:18.675>And <00:13:18.802>if <00:13:18.929>I <00:13:19.056>have <00:13:19.184>a <00:13:19.311>map <00:13:19.438>on <00:13:19.565>my <00:13:19.693>table, <00:13:19.820>I <00:13:19.947>could <00:13:20.074>more

318
00:13:21.255 --> 00:13:24.335
<00:13:21.255>or <00:13:21.410>less <00:13:21.566>for <00:13:21.721>every, <00:13:21.877>uh, <00:13:22.032>pass <00:13:22.188>look <00:13:22.343>on <00:13:22.499>the <00:13:22.655>map

319
00:13:24.335 --> 00:13:26.175
<00:13:24.335>where <00:13:24.535>this <00:13:24.735>room <00:13:24.935>is <00:13:25.135>located <00:13:25.335>on <00:13:25.535>the <00:13:25.735>world.

320
00:13:27.135 --> 00:13:28.335
<00:13:27.135>I <00:13:27.351>could <00:13:27.567>give <00:13:27.783>you <00:13:27.999>another <00:13:28.215>example.

321
00:13:28.665 --> 00:13:30.655
<00:13:28.665>Let's <00:13:28.898>assume <00:13:29.131>we <00:13:29.365>have <00:13:29.598>a <00:13:29.831>certain <00:13:30.064>modularization,

322
00:13:31.035 --> 00:13:33.935
<00:13:31.035>and <00:13:31.209>in <00:13:31.385>this <00:13:31.560>modularization <00:13:31.735>we <00:13:31.910>divide <00:13:32.084>the <00:13:32.260>earth <00:13:32.435>into

323
00:13:34.215 --> 00:13:36.015
<00:13:34.215>latitude, <00:13:34.565>longitude, <00:13:34.915>and <00:13:35.265>height <00:13:35.615>information.

324
00:13:37.115 --> 00:13:40.095
<00:13:37.115>We <00:13:37.270>could, <00:13:37.426>of <00:13:37.581>course, <00:13:37.737>with <00:13:37.892>GPS <00:13:38.048>coordinates <00:13:38.203>address <00:13:38.359>this <00:13:38.515>room.

325
00:13:40.205 --> 00:13:42.255
<00:13:40.205>Very, <00:13:40.485>very, <00:13:40.765>no, <00:13:41.045>not <00:13:41.325>very <00:13:41.605>easy.

326
00:13:42.475 --> 00:13:43.615
<00:13:42.475>We <00:13:42.731>could <00:13:42.988>address <00:13:43.244>that <00:13:43.501>room,

327
00:13:44.235 --> 00:13:46.375
<00:13:44.235>but <00:13:44.468>the <00:13:44.701>point <00:13:44.935>is <00:13:45.168>it's <00:13:45.401>not <00:13:45.635>unique.

328
00:13:46.735 --> 00:13:48.895
<00:13:46.735>I <00:13:46.910>could <00:13:47.085>address <00:13:47.260>this <00:13:47.435>point <00:13:47.610>here <00:13:47.785>at <00:13:47.960>my <00:13:48.135>fingertips.

329
00:13:49.095 --> 00:13:51.375
<00:13:49.095>I <00:13:49.270>could <00:13:49.445>also <00:13:49.620>address <00:13:49.795>this <00:13:49.970>point <00:13:50.145>at <00:13:50.320>the <00:13:50.495>fingertips.

330
00:13:51.375 --> 00:13:53.895
<00:13:51.375>So <00:13:51.575>we <00:13:51.775>don't <00:13:51.975>have <00:13:52.175>a <00:13:52.375>unique <00:13:52.575>address <00:13:52.775>information,

331
00:13:54.835 --> 00:13:57.895
<00:13:54.835>so <00:13:55.068>the <00:13:55.301>modularization <00:13:55.535>could <00:13:55.768>solve <00:13:56.001>our <00:13:56.235>problem,

332
00:13:57.995 --> 00:14:01.255
<00:13:57.995>but <00:13:58.150>it's <00:13:58.306>way <00:13:58.461>too <00:13:58.617>complicated, <00:13:58.772>especially <00:13:58.928>if <00:13:59.083>we <00:13:59.239>cook, <00:13:59.395>uh,

333
00:14:01.255 --> 00:14:03.975
<00:14:01.255>if <00:14:01.488>we <00:14:01.721>look <00:14:01.955>at <00:14:02.188>the <00:14:02.421>readability, <00:14:02.655>analyzability

334
00:14:04.195 --> 00:14:06.055
<00:14:04.195>and <00:14:04.428>the <00:14:04.661>analyzability <00:14:04.895>would <00:14:05.128>look <00:14:05.361>like <00:14:05.595>this.

335
00:14:06.635 --> 00:14:09.175
<00:14:06.635>So <00:14:06.790>every <00:14:06.946>one <00:14:07.101>of <00:14:07.257>you <00:14:07.412>have <00:14:07.568>already <00:14:07.723>seen <00:14:07.879>GPS <00:14:08.035>coordinators,

336
00:14:09.315 --> 00:14:10.815
<00:14:09.315>but <00:14:09.652>they're <00:14:09.990>not <00:14:10.327>human <00:14:10.665>readable.

337
00:14:11.655 --> 00:14:14.515
<00:14:11.655>So <00:14:11.795>this <00:14:11.935>is <00:14:12.074>a <00:14:12.214>example, <00:14:12.355>a <00:14:12.495>perfect <00:14:12.635>example, <00:14:12.775>why <00:14:12.915>it's <00:14:13.055>important

338
00:14:14.515 --> 00:14:17.035
<00:14:14.515>to <00:14:14.715>find <00:14:14.915>the <00:14:15.115>right <00:14:15.314>modularization <00:14:15.515>for <00:14:15.715>your <00:14:15.915>scope.

339
00:14:17.535 --> 00:14:21.195
<00:14:17.535>And <00:14:17.675>especially <00:14:17.814>the <00:14:17.954>second <00:14:18.094>one <00:14:18.235>is <00:14:18.375>not <00:14:18.515>very <00:14:18.655>imp <00:14:18.795>uh, <00:14:18.935>impressive

340
00:14:21.195 --> 00:14:23.755
<00:14:21.195>for <00:14:21.428>you <00:14:21.661>because <00:14:21.895>we <00:14:22.128>as <00:14:22.361>it <00:14:22.595>developers

341
00:14:23.935 --> 00:14:27.195
<00:14:23.935>or <00:14:24.135>computer <00:14:24.334>scientists, <00:14:24.535>we <00:14:24.734>are, <00:14:24.935>we <00:14:25.135>get <00:14:25.334>used

342
00:14:27.195 --> 00:14:30.755
<00:14:27.195>to <00:14:27.335>use <00:14:27.475>this <00:14:27.615>system <00:14:27.755>in <00:14:27.895>our <00:14:28.035>file <00:14:28.175>structure, <00:14:28.315>in <00:14:28.455>the <00:14:28.595>internet,

343
00:14:30.755 --> 00:14:32.155
<00:14:30.755>in <00:14:31.007>our <00:14:31.259>local <00:14:31.511>network, <00:14:31.763>et <00:14:32.015>cetera.

344
00:14:32.175 --> 00:14:33.395
<00:14:32.175>So <00:14:32.394>that's <00:14:32.614>not <00:14:32.833>impressive <00:14:33.053>for <00:14:33.273>us.

345
00:14:33.695 --> 00:14:35.715
<00:14:33.695>If <00:14:33.850>you <00:14:34.006>come <00:14:34.161>back <00:14:34.317>home <00:14:34.472>and <00:14:34.628>have <00:14:34.783>a <00:14:34.939>partner <00:14:35.095>maybe

346
00:14:35.715 --> 00:14:38.275
<00:14:35.715>who <00:14:35.870>has <00:14:36.026>not <00:14:36.181>nothing <00:14:36.337>to <00:14:36.492>do <00:14:36.648>with, <00:14:36.803>with <00:14:36.959>computer <00:14:37.115>science,

347
00:14:38.735 --> 00:14:41.595
<00:14:38.735>ask <00:14:38.862>them <00:14:38.989>to <00:14:39.116>solve <00:14:39.244>this <00:14:39.371>problem <00:14:39.498>to <00:14:39.625>come <00:14:39.753>up <00:14:39.880>with <00:14:40.007>a <00:14:40.135>structure

348
00:14:41.855 --> 00:14:43.435
<00:14:41.855>to <00:14:42.088>address <00:14:42.321>every <00:14:42.555>room <00:14:42.788>on <00:14:43.021>the <00:14:43.255>planet,

349
00:14:43.615 --> 00:14:46.475
<00:14:43.615>and <00:14:43.742>you <00:14:43.869>will <00:14:43.996>see <00:14:44.124>that <00:14:44.251>it's <00:14:44.378>not <00:14:44.505>so <00:14:44.633>easy <00:14:44.760>for <00:14:44.887>them <00:14:45.015>compared

350
00:14:46.475 --> 00:14:49.035
<00:14:46.475>to <00:14:46.650>us <00:14:46.825>who <00:14:47.000>working <00:14:47.175>in <00:14:47.350>the <00:14:47.525>field <00:14:47.700>of <00:14:47.875>software

351
00:14:49.035 --> 00:14:50.315
<00:14:49.035>and <00:14:49.611>information <00:14:50.187>technologies.

352
00:14:50.815 --> 00:14:51.845
<00:14:50.815>So <00:14:51.124>in <00:14:51.433>this <00:14:51.742>case,

353
00:14:51.915 --> 00:14:54.485
<00:14:51.915>this <00:14:52.148>would <00:14:52.381>be <00:14:52.615>the <00:14:52.848>superior, <00:14:53.081>superior <00:14:53.314>modularization.

354
00:14:55.705 --> 00:14:58.485
<00:14:55.705>We <00:14:55.860>can <00:14:56.016>just <00:14:56.171>figure <00:14:56.327>out <00:14:56.482>which <00:14:56.638>one <00:14:56.793>is <00:14:56.949>the <00:14:57.105>best

355
00:14:58.485 --> 00:15:00.165
<00:14:58.485>modularization <00:14:58.765>if <00:14:59.045>we <00:14:59.325>have <00:14:59.605>a <00:14:59.885>scope.

356
00:15:00.585 --> 00:15:02.925
<00:15:00.585>But <00:15:00.740>what <00:15:00.896>is <00:15:01.051>the <00:15:01.207>scope <00:15:01.362>for <00:15:01.518>us <00:15:01.673>in <00:15:01.829>software <00:15:01.985>development?

357
00:15:06.275 --> 00:15:07.695
<00:15:06.275>We <00:15:06.594>already <00:15:06.914>seen <00:15:07.233>it <00:15:07.553>more

358
00:15:07.695 --> 00:15:09.895
<00:15:07.695>or <00:15:07.850>less <00:15:08.006>we <00:15:08.161>have <00:15:08.317>said, <00:15:08.472>okay, <00:15:08.628>we <00:15:08.783>green <00:15:08.939>is <00:15:09.095>okay,

359
00:15:09.915 --> 00:15:13.975
<00:15:09.915>yellow <00:15:10.055>is <00:15:10.194>already <00:15:10.334>dangerous, <00:15:10.474>but <00:15:10.615>red <00:15:10.755>is <00:15:10.895>more, <00:15:11.035>is <00:15:11.175>the <00:15:11.314>more

360
00:15:13.975 --> 00:15:15.135
<00:15:13.975>or <00:15:14.183>less <00:15:14.392>the <00:15:14.601>most <00:15:14.810>dangerous <00:15:15.019>part.

361
00:15:15.195 --> 00:15:18.295
<00:15:15.195>So <00:15:15.370>our <00:15:15.545>scope <00:15:15.720>in <00:15:15.895>architecture <00:15:16.070>is <00:15:16.245>to <00:15:16.420>use <00:15:16.595>this

362
00:15:18.805 --> 00:15:20.735
<00:15:18.805>quality <00:15:19.084>attributes <00:15:19.364>in <00:15:19.645>the <00:15:19.925>red <00:15:20.204>area

363
00:15:20.915 --> 00:15:23.775
<00:15:20.915>and <00:15:21.042>try <00:15:21.169>to <00:15:21.296>improve <00:15:21.424>them <00:15:21.551>as <00:15:21.678>much <00:15:21.805>as <00:15:21.933>possible <00:15:22.060>in <00:15:22.187>a <00:15:22.314>way

364
00:15:23.775 --> 00:15:25.095
<00:15:23.775>that <00:15:24.171>we <00:15:24.567>can <00:15:24.963>sustain

365
00:15:25.155 --> 00:15:27.295
<00:15:25.155>or <00:15:25.435>create <00:15:25.714>a <00:15:25.995>sustainable <00:15:26.275>software <00:15:26.555>development

366
00:15:27.295 --> 00:15:28.455
<00:15:27.295>team <00:15:27.555>and <00:15:27.817>project, <00:15:28.078>of <00:15:28.339>course.

367
00:15:29.155 --> 00:15:31.695
<00:15:29.155>So <00:15:29.282>in <00:15:29.409>this, <00:15:29.536>like <00:15:29.664>I <00:15:29.791>said, <00:15:29.918>is <00:15:30.045>very <00:15:30.173>a <00:15:30.300>very <00:15:30.427>old <00:15:30.555>model.

368
00:15:32.055 --> 00:15:34.495
<00:15:32.055>Nowadays, <00:15:32.288>we <00:15:32.521>call <00:15:32.755>all <00:15:32.988>quality <00:15:33.221>attributes <00:15:33.454>in

369
00:15:34.495 --> 00:15:35.615
<00:15:34.495>a <00:15:34.747>little <00:15:34.999>bit <00:15:35.251>different <00:15:35.503>manner.

370
00:15:35.915 --> 00:15:38.895
<00:15:35.915>For <00:15:36.148>example, <00:15:36.381>we <00:15:36.615>have <00:15:36.848>analyzability, <00:15:37.081>we <00:15:37.314>have

371
00:15:39.755 --> 00:15:43.815
<00:15:39.755>you <00:15:40.035>knowability, <00:15:40.314>we <00:15:40.595>have <00:15:40.875>changeability, <00:15:41.155>testability

372
00:15:44.235 --> 00:15:46.175
<00:15:44.235>and <00:15:44.701>replaceability <00:15:45.168>and <00:15:45.635>maintainability.

373
00:15:46.435 --> 00:15:47.575
<00:15:46.435>So <00:15:47.461>more

374
00:15:47.575 --> 00:15:51.855
<00:15:47.575>or <00:15:47.730>less <00:15:47.886>everything <00:15:48.041>is, <00:15:48.197>huh, <00:15:48.352>everything <00:15:48.508>has <00:15:48.663>its <00:15:48.819>own <00:15:48.975>purpose.

375
00:15:51.965 --> 00:15:55.135
<00:15:51.965>It's <00:15:52.140>around, <00:15:52.315>it's <00:15:52.490>about <00:15:52.665>how <00:15:52.840>flexible <00:15:53.015>my <00:15:53.190>architecture <00:15:53.365>is.

376
00:15:55.475 --> 00:15:57.575
<00:15:55.475>And <00:15:55.675>flexibility <00:15:55.875>in <00:15:56.075>the <00:15:56.275>modern <00:15:56.475>days, <00:15:56.675>of <00:15:56.875>course,

377
00:15:57.635 --> 00:15:58.655
<00:15:57.635>is <00:15:57.941>very, <00:15:58.247>very <00:15:58.553>important.

378
00:15:58.735 --> 00:16:01.535
<00:15:58.735>I <00:15:58.935>have <00:15:59.135>numerous <00:15:59.335>customers <00:15:59.535>who <00:15:59.735>have <00:15:59.935>opportunities <00:16:00.135>to,

379
00:16:01.795 --> 00:16:04.655
<00:16:01.795>to <00:16:01.969>enter <00:16:02.145>new <00:16:02.319>market <00:16:02.495>or <00:16:02.670>new <00:16:02.844>segments <00:16:03.020>of <00:16:03.194>customers,

380
00:16:04.875 --> 00:16:07.055
<00:16:04.875>and <00:16:05.050>they <00:16:05.225>simply <00:16:05.400>are <00:16:05.575>not <00:16:05.750>able <00:16:05.925>to <00:16:06.100>do <00:16:06.275>it

381
00:16:07.055 --> 00:16:08.775
<00:16:07.055>because <00:16:07.334>they <00:16:07.614>don't <00:16:07.895>have <00:16:08.175>the <00:16:08.454>ability,

382
00:16:08.875 --> 00:16:10.415
<00:16:08.875>the <00:16:09.221>flexibility <00:16:09.568>in <00:16:09.914>their <00:16:10.261>software

383
00:16:10.755 --> 00:16:13.455
<00:16:10.755>to <00:16:11.105>maybe <00:16:11.455>modularize <00:16:11.805>their <00:16:12.155>functionality

384
00:16:13.595 --> 00:16:14.935
<00:16:13.595>so <00:16:13.896>they <00:16:14.198>can <00:16:14.499>make <00:16:14.800>bigger

385
00:16:15.075 --> 00:16:16.775
<00:16:15.075>or <00:16:15.355>smaller <00:16:15.635>versions <00:16:15.915>of <00:16:16.195>their <00:16:16.475>software

386
00:16:16.795 --> 00:16:18.055
<00:16:16.795>and <00:16:16.983>sell <00:16:17.173>them <00:16:17.362>to <00:16:17.550>a <00:16:17.740>new <00:16:17.929>market.

387
00:16:18.715 --> 00:16:22.135
<00:16:18.715>So <00:16:18.855>our <00:16:18.995>first <00:16:19.135>focus <00:16:19.275>will <00:16:19.415>be <00:16:19.555>on <00:16:19.695>this <00:16:19.835>two <00:16:19.975>parts <00:16:20.115>here,

388
00:16:22.415 --> 00:16:23.815
<00:16:22.415>analyzability <00:16:23.045>and <00:16:23.675>readability.

389
00:16:23.845 --> 00:16:26.615
<00:16:23.845>What <00:16:24.195>means <00:16:24.545>reliability <00:16:24.895>and <00:16:25.245>readability.

390
00:16:27.635 --> 00:16:30.735
<00:16:27.635>And <00:16:27.810>we <00:16:27.985>already <00:16:28.160>saw <00:16:28.335>an <00:16:28.510>example <00:16:28.685>of <00:16:28.860>our <00:16:29.035>structure,

391
00:16:31.395 --> 00:16:34.415
<00:16:31.395>and <00:16:31.569>if <00:16:31.745>we <00:16:31.920>now <00:16:32.095>speak <00:16:32.270>about <00:16:32.444>analyzability, <00:16:32.620>that <00:16:32.795>means

392
00:16:34.715 --> 00:16:37.855
<00:16:34.715>how <00:16:34.870>fast <00:16:35.026>we <00:16:35.181>are <00:16:35.337>able <00:16:35.492>to <00:16:35.648>navigate <00:16:35.803>within <00:16:35.959>this <00:16:36.115>structure

393
00:16:38.675 --> 00:16:40.135
<00:16:38.675>in <00:16:38.937>the <00:16:39.200>example <00:16:39.463>with <00:16:39.726>our <00:16:39.989>earth.

394
00:16:40.155 --> 00:16:42.095
<00:16:40.155>You <00:16:40.355>have <00:16:40.555>seen <00:16:40.755>with <00:16:40.954>this <00:16:41.155>path <00:16:41.355>we <00:16:41.555>created,

395
00:16:42.555 --> 00:16:44.095
<00:16:42.555>it <00:16:42.786>was <00:16:43.016>more <00:16:43.247>or <00:16:43.479>less <00:16:43.710>as <00:16:43.941>easy.

396
00:16:44.335 --> 00:16:46.975
<00:16:44.335>I <00:16:44.490>guess <00:16:44.646>every <00:16:44.801>one <00:16:44.957>of <00:16:45.112>you <00:16:45.268>would <00:16:45.423>easily <00:16:45.579>be <00:16:45.735>able

397
00:16:47.035 --> 00:16:49.615
<00:16:47.035>to <00:16:47.190>create <00:16:47.346>the <00:16:47.501>path <00:16:47.657>for <00:16:47.812>his <00:16:47.968>home <00:16:48.123>office, <00:16:48.279>for <00:16:48.435>example.

398
00:16:50.315 --> 00:16:52.575
<00:16:50.315>And <00:16:50.490>the <00:16:50.665>same <00:16:50.840>should <00:16:51.015>be <00:16:51.190>true <00:16:51.365>for <00:16:51.540>software <00:16:51.715>development.

399
00:16:52.575 --> 00:16:55.335
<00:16:52.575>If <00:16:52.775>you <00:16:52.975>have <00:16:53.175>a, <00:16:53.375>a <00:16:53.575>software <00:16:53.775>application, <00:16:53.975>regardless

400
00:16:55.515 --> 00:16:57.175
<00:16:55.515>how <00:16:55.715>large <00:16:55.915>it <00:16:56.115>is, <00:16:56.314>you've <00:16:56.515>seen <00:16:56.715>on <00:16:56.915>the,

401
00:16:57.175 --> 00:16:58.735
<00:16:57.175>in <00:16:57.454>the <00:16:57.734>previous <00:16:58.015>presentation <00:16:58.295>of <00:16:58.574>Carola,

402
00:16:58.875 --> 00:17:02.335
<00:16:58.875>how <00:16:59.030>many <00:16:59.186>large <00:16:59.341>projects <00:16:59.497>he <00:16:59.652>is, <00:16:59.808>uh, <00:16:59.963>currently <00:17:00.119>consulting <00:17:00.275>at.

403
00:17:02.755 --> 00:17:04.335
<00:17:02.755>And <00:17:03.035>even <00:17:03.314>in <00:17:03.595>such <00:17:03.875>a <00:17:04.155>project,

404
00:17:04.585 --> 00:17:07.695
<00:17:04.585>every <00:17:04.760>point <00:17:04.935>in <00:17:05.110>your <00:17:05.285>source <00:17:05.460>code <00:17:05.635>should <00:17:05.810>be <00:17:05.985>reachable

405
00:17:07.755 --> 00:17:11.015
<00:17:07.755>and <00:17:07.930>findable <00:17:08.105>for <00:17:08.280>every <00:17:08.455>software <00:17:08.630>developer <00:17:08.805>within <00:17:08.980>20 <00:17:09.155>seconds.

406
00:17:11.795 --> 00:17:15.415
<00:17:11.795>So <00:17:11.911>my, <00:17:12.028>my <00:17:12.145>metric <00:17:12.261>is <00:17:12.378>all <00:17:12.495>the <00:17:12.611>time, <00:17:12.728>if <00:17:12.845>you <00:17:12.961>have <00:17:13.078>a <00:17:13.195>piece

407
00:17:15.415 --> 00:17:18.575
<00:17:15.415>of <00:17:15.555>software <00:17:15.694>and <00:17:15.835>you <00:17:15.974>need <00:17:16.115>more <00:17:16.254>than <00:17:16.395>20 <00:17:16.534>seconds, <00:17:16.675>any <00:17:16.815>one

408
00:17:18.575 --> 00:17:20.895
<00:17:18.575>of <00:17:18.730>your <00:17:18.886>developers <00:17:19.041>to <00:17:19.197>reach <00:17:19.352>this <00:17:19.508>point <00:17:19.663>in <00:17:19.819>your <00:17:19.975>source

409
00:17:21.015 --> 00:17:22.295
<00:17:21.015>code, <00:17:21.245>then <00:17:21.475>you <00:17:21.706>have <00:17:21.936>a <00:17:22.167>problem.

410
00:17:22.405 --> 00:17:24.615
<00:17:22.405>Then <00:17:22.638>you <00:17:22.871>have <00:17:23.105>an <00:17:23.338>eroded <00:17:23.571>architecture <00:17:23.805>part.

411
00:17:24.825 --> 00:17:27.295
<00:17:24.825>Maybe <00:17:25.000>the <00:17:25.175>entire <00:17:25.350>architecture <00:17:25.525>is <00:17:25.700>eroded, <00:17:25.875>I <00:17:26.050>don't <00:17:26.225>know.

412
00:17:28.315 --> 00:17:31.135
<00:17:28.315>But <00:17:28.442>how <00:17:28.569>can <00:17:28.696>we <00:17:28.824>achieve <00:17:28.951>this <00:17:29.078>and <00:17:29.205>how <00:17:29.333>can <00:17:29.460>we <00:17:29.587>avoid <00:17:29.715>it?

413
00:17:31.205 --> 00:17:34.335
<00:17:31.205>Like <00:17:31.332>I <00:17:31.459>said, <00:17:31.586>we <00:17:31.714>just <00:17:31.841>have <00:17:31.968>30 <00:17:32.095>minutes, <00:17:32.223>so <00:17:32.350>it's <00:17:32.477>not, <00:17:32.605>uh,

414
00:17:34.515 --> 00:17:37.215
<00:17:34.515>not <00:17:34.715>much <00:17:34.915>enough <00:17:35.115>time <00:17:35.315>to <00:17:35.515>explain <00:17:35.715>a <00:17:35.915>completely,

415
00:17:37.595 --> 00:17:40.535
<00:17:37.595>but <00:17:37.770>the <00:17:37.945>theory <00:17:38.120>behind <00:17:38.295>it, <00:17:38.470>if <00:17:38.645>we <00:17:38.820>develop <00:17:38.995>software,

416
00:17:40.795 --> 00:17:44.855
<00:17:40.795>we <00:17:40.950>always <00:17:41.106>develop <00:17:41.261>this <00:17:41.417>piece <00:17:41.572>of <00:17:41.728>software <00:17:41.883>for <00:17:42.039>a <00:17:42.195>domain,

417
00:17:45.235 --> 00:17:48.095
<00:17:45.235>for <00:17:45.514>finance, <00:17:45.794>for <00:17:46.074>insurance <00:17:46.354>or <00:17:46.635>whatever.

418
00:17:48.515 --> 00:17:51.005
<00:17:48.515>And <00:17:48.748>this <00:17:48.981>insurance <00:17:49.215>is <00:17:49.448>also <00:17:49.681>as <00:17:49.915>insurance.

419
00:17:51.005 --> 00:17:53.085
<00:17:51.005>This <00:17:51.238>domain <00:17:51.471>is <00:17:51.705>also <00:17:51.938>a <00:17:52.171>three <00:17:52.405>structure.

420
00:17:53.265 --> 00:17:56.645
<00:17:53.265>We <00:17:53.498>have <00:17:53.731>domains, <00:17:53.965>sub-domains, <00:17:54.198>sub <00:17:54.431>sub <00:17:54.665>sub-domains,

421
00:17:56.865 --> 00:17:57.965
<00:17:56.865>and <00:17:57.063>so <00:17:57.261>on <00:17:57.459>and <00:17:57.657>so <00:17:57.855>forth.

422
00:17:58.315 --> 00:18:01.045
<00:17:58.315>That <00:17:58.470>is <00:17:58.626>our <00:17:58.781>domain. <00:17:58.937>It's <00:17:59.092>a <00:17:59.248>three <00:17:59.403>structure <00:17:59.559>as <00:17:59.715>well.

423
00:18:01.345 --> 00:18:03.245
<00:18:01.345>And <00:18:01.625>this <00:18:01.905>structure <00:18:02.185>has <00:18:02.465>a <00:18:02.745>complexity.

424
00:18:03.685 --> 00:18:05.205
<00:18:03.685>I <00:18:03.958>have <00:18:04.232>to <00:18:04.505>understand <00:18:04.779>my <00:18:05.053>domain

425
00:18:05.265 --> 00:18:06.805
<00:18:05.265>or <00:18:05.496>the <00:18:05.727>part <00:18:05.958>of <00:18:06.189>my <00:18:06.420>domain <00:18:06.651>first

426
00:18:06.895 --> 00:18:08.885
<00:18:06.895>where <00:18:07.175>I <00:18:07.455>write <00:18:07.735>my <00:18:08.014>application <00:18:08.295>for.

427
00:18:09.345 --> 00:18:11.845
<00:18:09.345>So <00:18:09.545>every <00:18:09.745>developer, <00:18:09.945>which <00:18:10.145>starts <00:18:10.345>the <00:18:10.545>code, <00:18:10.745>has

428
00:18:11.845 --> 00:18:13.805
<00:18:11.845>to <00:18:12.045>understand <00:18:12.245>this <00:18:12.445>part <00:18:12.645>of <00:18:12.845>the <00:18:13.045>domain <00:18:13.245>first.

429
00:18:14.655 --> 00:18:18.045
<00:18:14.655>After <00:18:14.795>I've <00:18:14.935>understood <00:18:15.075>my, <00:18:15.215>my <00:18:15.355>part <00:18:15.495>of <00:18:15.635>my <00:18:15.774>domain, <00:18:15.915>I <00:18:16.055>have

430
00:18:18.045 --> 00:18:20.765
<00:18:18.045>to <00:18:18.278>understand <00:18:18.511>the <00:18:18.745>second <00:18:18.978>complexity, <00:18:19.211>our <00:18:19.445>architecture.

431
00:18:20.955 --> 00:18:22.645
<00:18:20.955>Just <00:18:21.235>imagine <00:18:21.514>for <00:18:21.794>the <00:18:22.074>moment <00:18:22.355>your

432
00:18:22.645 --> 00:18:24.365
<00:18:22.645>project <00:18:22.995>structure <00:18:23.345>in <00:18:23.695>your <00:18:24.045>id.

433
00:18:25.105 --> 00:18:26.805
<00:18:25.105>So <00:18:25.385>if <00:18:25.665>I <00:18:25.945>understood <00:18:26.225>the <00:18:26.505>domain

434
00:18:26.945 --> 00:18:28.365
<00:18:26.945>and <00:18:27.370>understood <00:18:27.797>my <00:18:28.223>architecture,

435
00:18:28.365 --> 00:18:31.765
<00:18:28.365>and <00:18:28.505>now, <00:18:28.645>now <00:18:28.785>where <00:18:28.925>I <00:18:29.065>have <00:18:29.205>to <00:18:29.345>place <00:18:29.485>the <00:18:29.625>new <00:18:29.765>files

436
00:18:31.825 --> 00:18:34.845
<00:18:31.825>or <00:18:31.952>have <00:18:32.079>where <00:18:32.206>I <00:18:32.334>have <00:18:32.461>to <00:18:32.588>make <00:18:32.715>my <00:18:32.843>changes, <00:18:32.970>then <00:18:33.097>I <00:18:33.225>able

437
00:18:34.865 --> 00:18:39.325
<00:18:34.865>to <00:18:35.005>transfer <00:18:35.145>the <00:18:35.285>task <00:18:35.425>from <00:18:35.565>my <00:18:35.705>domain <00:18:35.845>complexity <00:18:35.985>over <00:18:36.125>to <00:18:36.265>my,

438
00:18:39.505 --> 00:18:40.845
<00:18:39.505>to <00:18:39.907>my <00:18:40.309>architecture <00:18:40.711>complexity.

439
00:18:41.545 --> 00:18:43.925
<00:18:41.545>And <00:18:41.895>the <00:18:42.245>both <00:18:42.595>structures, <00:18:42.945>domain

440
00:18:44.085 --> 00:18:46.845
<00:18:44.085>and <00:18:44.318>architecture <00:18:44.551>are <00:18:44.785>more <00:18:45.018>or <00:18:45.251>less <00:18:45.485>different.

441
00:18:47.145 --> 00:18:49.885
<00:18:47.145>And <00:18:47.300>as <00:18:47.456>long <00:18:47.611>as <00:18:47.767>your <00:18:47.922>project <00:18:48.078>goes, <00:18:48.233>as <00:18:48.389>more <00:18:48.545>this,

442
00:18:49.995 --> 00:18:52.165
<00:18:49.995>both <00:18:50.461>structures, <00:18:50.928>um, <00:18:51.395>differentiate,

443
00:18:52.235 --> 00:18:53.765
<00:18:52.235>differentiate <00:18:52.694>from <00:18:53.153>each <00:18:53.612>other.

444
00:18:54.545 --> 00:18:58.325
<00:18:54.545>So <00:18:54.700>the <00:18:54.856>consequence <00:18:55.011>is <00:18:55.167>that <00:18:55.322>over <00:18:55.478>time, <00:18:55.633>the <00:18:55.789>complexity <00:18:55.945>rises

445
00:18:58.585 --> 00:19:01.285
<00:18:58.585>for <00:18:58.785>this <00:18:58.985>transfer <00:18:59.185>from <00:18:59.385>domain <00:18:59.585>to <00:18:59.785>your <00:18:59.985>application.

446
00:19:01.665 --> 00:19:03.965
<00:19:01.665>And <00:19:01.820>that <00:19:01.976>is <00:19:02.131>more <00:19:02.287>or <00:19:02.442>less <00:19:02.598>the <00:19:02.753>anti-patent <00:19:02.909>of <00:19:03.065>each

447
00:19:03.965 --> 00:19:06.765
<00:19:03.965>and <00:19:04.165>every <00:19:04.365>architecture, <00:19:04.564>which <00:19:04.764>is <00:19:04.965>not <00:19:05.165>langer <00:19:05.365>maintainable

448
00:19:06.945 --> 00:19:09.245
<00:19:06.945>and <00:19:07.294>testable, <00:19:07.645>extensible, <00:19:07.995>et <00:19:08.345>cetera,

449
00:19:09.245 --> 00:19:13.165
<00:19:09.245>after <00:19:09.385>a <00:19:09.524>few <00:19:09.665>months, <00:19:09.804>maybe <00:19:09.945>months <00:19:10.084>or <00:19:10.225>often <00:19:10.364>years <00:19:10.504>or <00:19:10.645>decades.

450
00:19:14.385 --> 00:19:17.165
<00:19:14.385>So <00:19:14.512>a <00:19:14.639>better <00:19:14.766>way, <00:19:14.894>a <00:19:15.021>better <00:19:15.148>approach <00:19:15.275>to <00:19:15.403>reach <00:19:15.530>this <00:19:15.657>is <00:19:15.785>to

451
00:19:17.825 --> 00:19:19.165
<00:19:17.825>of <00:19:18.126>course <00:19:18.428>create <00:19:18.729>a <00:19:19.031>structure,

452
00:19:19.265 --> 00:19:21.645
<00:19:19.265>but <00:19:19.498>a <00:19:19.731>little <00:19:19.965>bit <00:19:20.198>different <00:19:20.431>structure <00:19:20.665>compared

453
00:19:21.645 --> 00:19:22.645
<00:19:21.645>to <00:19:21.945>the <00:19:22.245>previous <00:19:22.545>example.

454
00:19:22.985 --> 00:19:24.925
<00:19:22.985>We <00:19:23.264>still <00:19:23.544>have <00:19:23.824>our <00:19:24.104>domain <00:19:24.385>complexity.

455
00:19:25.065 --> 00:19:27.685
<00:19:25.065>Of <00:19:25.240>course, <00:19:25.415>it <00:19:25.590>doesn't <00:19:25.765>matter <00:19:25.940>what <00:19:26.115>kind <00:19:26.290>of <00:19:26.465>architecture

456
00:19:27.685 --> 00:19:29.565
<00:19:27.685>or <00:19:28.034>modularization <00:19:28.385>strategy <00:19:28.735>you <00:19:29.085>use,

457
00:19:29.565 --> 00:19:31.445
<00:19:29.565>you <00:19:29.765>always <00:19:29.965>have <00:19:30.165>the <00:19:30.365>complexity <00:19:30.565>of <00:19:30.765>your <00:19:30.965>domain,

458
00:19:32.025 --> 00:19:34.605
<00:19:32.025>and <00:19:32.200>we <00:19:32.375>have <00:19:32.550>our <00:19:32.725>product <00:19:32.900>on <00:19:33.075>the <00:19:33.250>right <00:19:33.425>side,

459
00:19:34.625 --> 00:19:38.365
<00:19:34.625>but <00:19:34.752>this <00:19:34.879>time <00:19:35.006>we <00:19:35.134>try <00:19:35.261>to <00:19:35.388>create <00:19:35.515>this <00:19:35.643>structure <00:19:35.770>in <00:19:35.897>a <00:19:36.025>way

460
00:19:38.435 --> 00:19:40.365
<00:19:38.435>that <00:19:38.668>is <00:19:38.901>more <00:19:39.135>or <00:19:39.368>less <00:19:39.601>an <00:19:39.835>identical

461
00:19:40.765 --> 00:19:42.325
<00:19:40.765>structure <00:19:41.115>compared <00:19:41.465>to <00:19:41.815>our <00:19:42.165>domain.

462
00:19:43.105 --> 00:19:45.325
<00:19:43.105>So <00:19:43.338>if <00:19:43.571>our <00:19:43.805>developer <00:19:44.038>understood <00:19:44.271>our <00:19:44.505>domain,

463
00:19:45.325 --> 00:19:48.085
<00:19:45.325>our <00:19:45.480>domain <00:19:45.636>structure, <00:19:45.791>and <00:19:45.947>parts <00:19:46.102>of <00:19:46.258>the <00:19:46.413>domain <00:19:46.569>he <00:19:46.725>has

464
00:19:48.085 --> 00:19:50.205
<00:19:48.085>to <00:19:48.318>source <00:19:48.551>the <00:19:48.785>task <00:19:49.018>for, <00:19:49.251>he's <00:19:49.485>more

465
00:19:50.205 --> 00:19:53.205
<00:19:50.205>or <00:19:50.360>less <00:19:50.516>directly <00:19:50.671>able <00:19:50.827>to <00:19:50.982>transfer <00:19:51.138>this <00:19:51.293>information <00:19:51.449>from <00:19:51.605>the

466
00:19:53.205 --> 00:19:54.485
<00:19:53.205>left <00:19:53.435>side <00:19:53.665>to <00:19:53.896>the <00:19:54.126>right <00:19:54.357>side.

467
00:19:54.945 --> 00:19:57.205
<00:19:54.945>And <00:19:55.145>with <00:19:55.345>this <00:19:55.544>approach, <00:19:55.745>which <00:19:55.945>you <00:19:56.145>can <00:19:56.345>reach

468
00:19:57.275 --> 00:19:59.325
<00:19:57.275>with <00:19:57.625>naming <00:19:57.975>patterns, <00:19:58.325>et <00:19:58.675>cetera,

469
00:19:59.345 --> 00:20:02.005
<00:19:59.345>or <00:19:59.520>domain <00:19:59.695>driven <00:19:59.870>design <00:20:00.045>in <00:20:00.220>a <00:20:00.395>slightly <00:20:00.570>different <00:20:00.745>way,

470
00:20:02.345 --> 00:20:04.325
<00:20:02.345>we <00:20:02.545>can <00:20:02.745>more <00:20:02.945>or <00:20:03.145>less <00:20:03.345>keep <00:20:03.545>the <00:20:03.745>complexity

471
00:20:04.325 --> 00:20:05.845
<00:20:04.325>of <00:20:04.781>our <00:20:05.237>application <00:20:05.693>constant.

472
00:20:06.265 --> 00:20:07.885
<00:20:06.265>And <00:20:06.498>I <00:20:06.731>know <00:20:06.965>conference <00:20:07.198>talks <00:20:07.431>like <00:20:07.665>this,

473
00:20:07.915 --> 00:20:10.925
<00:20:07.915>I've <00:20:08.055>already <00:20:08.195>also <00:20:08.335>set <00:20:08.475>in <00:20:08.615>the <00:20:08.754>audience <00:20:08.895>of <00:20:09.034>talks <00:20:09.175>like <00:20:09.315>this.

474
00:20:11.115 --> 00:20:14.525
<00:20:11.115>This <00:20:11.255>is <00:20:11.395>not <00:20:11.535>advertisement <00:20:11.675>or, <00:20:11.815>uh, <00:20:11.955>a <00:20:12.095>promise <00:20:12.235>of <00:20:12.375>a <00:20:12.515>consultant.

475
00:20:14.755 --> 00:20:16.405
<00:20:14.755>This <00:20:15.035>is <00:20:15.315>a <00:20:15.595>real <00:20:15.875>world <00:20:16.155>example.

476
00:20:16.525 --> 00:20:19.365
<00:20:16.525>I <00:20:16.680>have <00:20:16.836>so <00:20:16.991>many <00:20:17.147>applications <00:20:17.302>where <00:20:17.458>I <00:20:17.613>do <00:20:17.769>reviews <00:20:17.925>at,

477
00:20:19.365 --> 00:20:22.685
<00:20:19.365>on <00:20:19.492>a <00:20:19.619>regular <00:20:19.746>basis, <00:20:19.874>and <00:20:20.001>in <00:20:20.128>these <00:20:20.255>reviews <00:20:20.383>I <00:20:20.510>have <00:20:20.637>to <00:20:20.765>find

478
00:20:23.215 --> 00:20:25.645
<00:20:23.215>predefined <00:20:23.448>course <00:20:23.681>code <00:20:23.915>source <00:20:24.148>points <00:20:24.381>from <00:20:24.615>the

479
00:20:25.645 --> 00:20:26.925
<00:20:25.645>developers <00:20:26.029>within <00:20:26.413>20 <00:20:26.797>seconds.

480
00:20:27.385 --> 00:20:30.845
<00:20:27.385>And <00:20:27.540>my <00:20:27.696>largest <00:20:27.851>example <00:20:28.007>are <00:20:28.162>13.7 <00:20:28.318>million <00:20:28.473>lines <00:20:28.629>of <00:20:28.785>code.

481
00:20:31.145 --> 00:20:34.765
<00:20:31.145>And <00:20:31.252>two <00:20:31.360>or <00:20:31.468>three <00:20:31.575>times <00:20:31.683>a <00:20:31.791>year, <00:20:31.898>I <00:20:32.006>have <00:20:32.114>to <00:20:32.221>do <00:20:32.329>a <00:20:32.437>code <00:20:32.545>review.

482
00:20:34.765 --> 00:20:36.205
<00:20:34.765>And <00:20:34.981>as <00:20:35.197>soon <00:20:35.413>as <00:20:35.629>I'm <00:20:35.845>not <00:20:36.061>able

483
00:20:36.205 --> 00:20:38.365
<00:20:36.205>to <00:20:36.405>reach <00:20:36.605>a <00:20:36.804>certain <00:20:37.004>point <00:20:37.205>within <00:20:37.405>20 <00:20:37.605>seconds,

484
00:20:38.755 --> 00:20:40.405
<00:20:38.755>it's <00:20:38.988>a <00:20:39.221>design <00:20:39.455>smell, <00:20:39.688>and <00:20:39.921>we <00:20:40.155>try

485
00:20:40.405 --> 00:20:42.205
<00:20:40.405>to <00:20:40.638>refactor <00:20:40.871>this <00:20:41.105>part <00:20:41.338>of <00:20:41.571>our <00:20:41.805>application.

486
00:20:42.945 --> 00:20:45.605
<00:20:42.945>So <00:20:43.072>this <00:20:43.199>is <00:20:43.326>the <00:20:43.454>theory <00:20:43.581>behind <00:20:43.708>it. <00:20:43.835>How <00:20:43.963>can <00:20:44.090>you <00:20:44.217>achieve <00:20:44.345>it?

487
00:20:45.835 --> 00:20:47.325
<00:20:45.835>It's <00:20:46.170>nothing <00:20:46.505>fancy, <00:20:46.840>nothing <00:20:47.176>new.

488
00:20:47.745 --> 00:20:49.405
<00:20:47.745>We <00:20:48.024>have <00:20:48.304>concepts <00:20:48.584>since <00:20:48.864>the <00:20:49.145>eighties,

489
00:20:49.495 --> 00:20:51.365
<00:20:49.495>likes <00:20:49.844>the <00:20:50.195>single <00:20:50.544>responsibility <00:20:50.895>principle.

490
00:20:51.615 --> 00:20:54.285
<00:20:51.615>Every <00:20:51.742>one <00:20:51.869>of <00:20:51.996>you <00:20:52.124>who <00:20:52.251>writes <00:20:52.378>software <00:20:52.505>who <00:20:52.633>is <00:20:52.760>in <00:20:52.887>the <00:20:53.015>field

491
00:20:54.285 --> 00:20:56.165
<00:20:54.285>of <00:20:54.518>software <00:20:54.751>development <00:20:54.985>should <00:20:55.218>know <00:20:55.451>this <00:20:55.685>principle.

492
00:20:56.705 --> 00:20:58.245
<00:20:56.705>And <00:20:56.982>one <00:20:57.259>thing <00:20:57.536>is <00:20:57.813>very <00:20:58.091>important.

493
00:20:58.375 --> 00:21:01.125
<00:20:58.375>Every <00:20:58.515>time <00:20:58.655>you <00:20:58.795>have <00:20:58.935>the <00:20:59.075>word <00:20:59.215>principle <00:20:59.355>in <00:20:59.495>something <00:20:59.635>in <00:20:59.775>the

494
00:21:01.285 --> 00:21:04.165
<00:21:01.285>software <00:21:01.518>development <00:21:01.751>world, <00:21:01.985>it's <00:21:02.218>very, <00:21:02.451>very <00:21:02.685>dangerous

495
00:21:04.585 --> 00:21:06.845
<00:21:04.585>or <00:21:04.865>dangerous, <00:21:05.145>very, <00:21:05.425>very, <00:21:05.705>uh, <00:21:05.985>difficult

496
00:21:06.945 --> 00:21:08.285
<00:21:06.945>to <00:21:07.146>apply <00:21:07.347>this <00:21:07.548>to <00:21:07.749>the <00:21:07.950>real <00:21:08.151>world.

497
00:21:08.475 --> 00:21:11.405
<00:21:08.475>Understanding <00:21:08.708>the <00:21:08.941>single <00:21:09.175>responsibility, <00:21:09.408>which <00:21:09.641>just <00:21:09.875>says,

498
00:21:11.475 --> 00:21:14.085
<00:21:11.475>okay, <00:21:11.649>you <00:21:11.824>have <00:21:12.000>a <00:21:12.175>single <00:21:12.350>responsibility <00:21:12.524>in <00:21:12.699>your <00:21:12.875>application,

499
00:21:14.105 --> 00:21:15.765
<00:21:14.105>or <00:21:14.338>each <00:21:14.571>system <00:21:14.805>should <00:21:15.038>have <00:21:15.271>a <00:21:15.505>single

500
00:21:15.765 --> 00:21:16.965
<00:21:15.765>responsibility <00:21:16.125>in <00:21:16.485>your <00:21:16.845>code.

501
00:21:17.415 --> 00:21:19.685
<00:21:17.415>Apply <00:21:17.695>this <00:21:17.975>concept <00:21:18.254>to <00:21:18.534>your <00:21:18.815>application,

502
00:21:19.945 --> 00:21:21.925
<00:21:19.945>to <00:21:20.225>your <00:21:20.504>entire <00:21:20.784>hierarchy <00:21:21.064>you <00:21:21.345>created

503
00:21:21.995 --> 00:21:25.885
<00:21:21.995>with <00:21:22.228>your <00:21:22.461>modularization <00:21:22.695>is <00:21:22.928>very, <00:21:23.161>very <00:21:23.395>complicated

504
00:21:26.305 --> 00:21:29.245
<00:21:26.305>and <00:21:26.421>is <00:21:26.538>a <00:21:26.655>task <00:21:26.771>which <00:21:26.888>should, <00:21:27.005>has <00:21:27.121>to <00:21:27.238>be <00:21:27.355>done <00:21:27.471>in <00:21:27.588>every <00:21:27.705>project

505
00:21:29.245 --> 00:21:33.005
<00:21:29.245>because <00:21:29.419>we <00:21:29.594>want <00:21:29.770>this <00:21:29.945>analyzability <00:21:30.120>within <00:21:30.294>your <00:21:30.469>source <00:21:30.645>code.

506
00:21:33.625 --> 00:21:35.685
<00:21:33.625>And <00:21:33.858>the <00:21:34.091>second <00:21:34.325>part <00:21:34.558>are <00:21:34.791>naming <00:21:35.025>patterns.

507
00:21:35.685 --> 00:21:38.285
<00:21:35.685>You <00:21:35.885>already <00:21:36.085>heard <00:21:36.284>a <00:21:36.485>talk <00:21:36.685>from <00:21:36.885>Carola <00:21:37.085>Carola,

508
00:21:38.285 --> 00:21:41.165
<00:21:38.285>I <00:21:38.425>have <00:21:38.565>no <00:21:38.705>idea <00:21:38.845>if, <00:21:38.985>uh, <00:21:39.125>if <00:21:39.265>she <00:21:39.405>invented <00:21:39.545>naming <00:21:39.685>patterns,

509
00:21:41.385 --> 00:21:44.245
<00:21:41.385>but <00:21:41.492>it <00:21:41.600>was <00:21:41.708>the <00:21:41.815>first <00:21:41.923>time <00:21:42.031>when <00:21:42.138>I <00:21:42.246>wrote, <00:21:42.354>uh, <00:21:42.461>read <00:21:42.569>her <00:21:42.677>a <00:21:42.785>book

510
00:21:44.435 --> 00:21:46.645
<00:21:44.435>that, <00:21:44.635>uh, <00:21:44.835>I <00:21:45.034>was <00:21:45.235>introduced <00:21:45.435>into <00:21:45.635>naming <00:21:45.835>patterns.

511
00:21:46.745 --> 00:21:48.845
<00:21:46.745>And <00:21:46.919>that <00:21:47.094>is <00:21:47.270>an <00:21:47.445>absolute <00:21:47.620>game <00:21:47.794>changer <00:21:47.969>for <00:21:48.145>me

512
00:21:48.845 --> 00:21:51.685
<00:21:48.845>because <00:21:49.020>naming <00:21:49.195>patterns <00:21:49.370>not <00:21:49.545>only <00:21:49.720>is <00:21:49.895>solving <00:21:50.070>the <00:21:50.245>biggest

513
00:21:51.755 --> 00:21:54.565
<00:21:51.755>problem <00:21:51.955>in <00:21:52.155>software <00:21:52.355>architecture, <00:21:52.555>which <00:21:52.755>is <00:21:52.955>software <00:21:53.155>design,

514
00:21:55.185 --> 00:21:57.765
<00:21:55.185>but <00:21:55.418>also <00:21:55.651>it's <00:21:55.885>very, <00:21:56.118>uh, <00:21:56.351>very <00:21:56.585>testable.

515
00:21:57.765 --> 00:22:00.725
<00:21:57.765>You <00:21:57.965>can <00:21:58.165>write <00:21:58.365>rules <00:21:58.565>in, <00:21:58.765>in <00:21:58.965>j <00:21:59.165>architect

516
00:22:00.725 --> 00:22:02.605
<00:22:00.725>and <00:22:00.958>independent, <00:22:01.191>for <00:22:01.425>example, <00:22:01.658>to <00:22:01.891>automat, <00:22:02.125>uh,

517
00:22:02.605 --> 00:22:05.005
<00:22:02.605>automatically <00:22:02.955>verify <00:22:03.305>that <00:22:03.655>every <00:22:04.005>class,

518
00:22:05.005 --> 00:22:07.845
<00:22:05.005>every <00:22:05.132>method <00:22:05.259>is <00:22:05.386>created <00:22:05.514>in <00:22:05.641>this, <00:22:05.768>in <00:22:05.895>the, <00:22:06.023>in <00:22:06.150>the <00:22:06.277>right <00:22:06.405>way.

519
00:22:08.585 --> 00:22:10.205
<00:22:08.585>One <00:22:08.935>word <00:22:09.285>for <00:22:09.635>software <00:22:09.985>design.

520
00:22:10.545 --> 00:22:11.965
<00:22:10.545>You've <00:22:10.864>seen <00:22:11.184>this <00:22:11.503>large <00:22:11.822>structure

521
00:22:12.345 --> 00:22:14.725
<00:22:12.345>and <00:22:12.578>the <00:22:12.811>the <00:22:13.045>system <00:22:13.278>architecture <00:22:13.511>is <00:22:13.745>more

522
00:22:14.725 --> 00:22:16.445
<00:22:14.725>or <00:22:14.958>less <00:22:15.191>created <00:22:15.425>by <00:22:15.658>one <00:22:15.891>two <00:22:16.125>persons.

523
00:22:17.085 --> 00:22:19.645
<00:22:17.085>Software <00:22:17.285>architecture <00:22:17.485>as <00:22:17.685>well, <00:22:17.885>one <00:22:18.085>or <00:22:18.285>two <00:22:18.485>persons.

524
00:22:20.225 --> 00:22:22.565
<00:22:20.225>The, <00:22:20.399>uh, <00:22:20.574>the <00:22:20.750>part <00:22:20.925>of <00:22:21.100>software <00:22:21.274>design <00:22:21.449>is <00:22:21.625>created

525
00:22:22.585 --> 00:22:25.125
<00:22:22.585>by <00:22:22.760>your <00:22:22.935>entire <00:22:23.110>team, <00:22:23.285>means <00:22:23.460>everyone <00:22:23.635>in <00:22:23.810>your <00:22:23.985>team

526
00:22:25.125 --> 00:22:27.405
<00:22:25.125>who <00:22:25.405>creates <00:22:25.685>classes <00:22:25.965>and <00:22:26.245>methods <00:22:26.525>participate

527
00:22:27.405 --> 00:22:28.525
<00:22:27.405>inside <00:22:27.741>a <00:22:28.077>software <00:22:28.413>design.

528
00:22:28.945 --> 00:22:31.325
<00:22:28.945>And <00:22:29.178>therefore <00:22:29.411>every <00:22:29.645>developer <00:22:29.878>should <00:22:30.111>be <00:22:30.345>familiar

529
00:22:31.325 --> 00:22:33.885
<00:22:31.325>with <00:22:31.558>software <00:22:31.791>design, <00:22:32.025>with <00:22:32.258>supplying <00:22:32.491>principles <00:22:32.725>like

530
00:22:34.125 --> 00:22:36.525
<00:22:34.125>S-R-P-D-I-P, <00:22:34.358>et <00:22:34.591>cetera, <00:22:34.825>to <00:22:35.058>your <00:22:35.291>source <00:22:35.525>code.

531
00:22:36.585 --> 00:22:40.205
<00:22:36.585>If <00:22:36.760>not <00:22:36.935>every <00:22:37.110>developer <00:22:37.285>creates <00:22:37.460>technical <00:22:37.635>depth <00:22:37.810>every <00:22:37.985>day

532
00:22:41.015 --> 00:22:43.045
<00:22:41.015>until <00:22:41.215>you <00:22:41.415>reach <00:22:41.615>a <00:22:41.815>amount <00:22:42.015>of <00:22:42.215>technical <00:22:42.415>depth

533
00:22:43.045 --> 00:22:45.165
<00:22:43.045>that <00:22:43.278>your <00:22:43.511>project <00:22:43.745>is <00:22:43.978>not <00:22:44.211>longer <00:22:44.445>extensible

534
00:22:45.305 --> 00:22:46.765
<00:22:45.305>and <00:22:45.633>maintainable <00:22:45.962>at <00:22:46.290>all, <00:22:46.619>that

535
00:22:46.905 --> 00:22:48.805
<00:22:46.905>that's <00:22:47.138>the <00:22:47.371>reason <00:22:47.605>you <00:22:47.838>should <00:22:48.071>pay <00:22:48.305>especially

536
00:22:48.805 --> 00:22:50.085
<00:22:48.805>attention <00:22:49.189>to <00:22:49.573>software <00:22:49.957>design.

537
00:22:50.395 --> 00:22:51.805
<00:22:50.395>Then <00:22:50.818>on <00:22:51.241>software <00:22:51.664>architecture

538
00:22:51.805 --> 00:22:53.765
<00:22:51.805>and <00:22:52.038>system <00:22:52.271>design, <00:22:52.505>I've <00:22:52.738>seen <00:22:52.971>numerous <00:22:53.205>projects

539
00:22:53.765 --> 00:22:55.485
<00:22:53.765>where <00:22:53.998>we <00:22:54.231>had <00:22:54.465>a <00:22:54.698>good <00:22:54.931>system <00:22:55.165>architecture,

540
00:22:55.565 --> 00:22:56.765
<00:22:55.565>a <00:22:55.925>good <00:22:56.285>software <00:22:56.645>architecture,

541
00:22:57.025 --> 00:23:00.445
<00:22:57.025>and <00:22:57.152>had <00:22:57.279>a <00:22:57.406>complete <00:22:57.534>mess <00:22:57.661>on <00:22:57.788>the, <00:22:57.915>on <00:22:58.043>the <00:22:58.170>software <00:22:58.297>design <00:22:58.425>side.

542
00:23:00.585 --> 00:23:01.685
<00:23:00.585>And <00:23:00.783>therefore <00:23:00.981>we <00:23:01.179>had <00:23:01.377>a <00:23:01.575>lot

543
00:23:01.685 --> 00:23:03.605
<00:23:01.685>of <00:23:01.965>technical <00:23:02.245>depth <00:23:02.524>in <00:23:02.804>this <00:23:03.085>project.

544
00:23:04.925 --> 00:23:07.205
<00:23:04.925>Applying <00:23:05.125>this <00:23:05.325>two <00:23:05.524>principles <00:23:05.725>is <00:23:05.925>not <00:23:06.125>as <00:23:06.325>easy.

545
00:23:07.405 --> 00:23:09.685
<00:23:07.405>I <00:23:07.560>have <00:23:07.716>created, <00:23:07.871>like <00:23:08.027>I <00:23:08.182>said, <00:23:08.338>two <00:23:08.493>videos <00:23:08.649>in <00:23:08.805>German,

546
00:23:09.745 --> 00:23:12.325
<00:23:09.745>but <00:23:09.978>with <00:23:10.211>English <00:23:10.445>subtitles <00:23:10.678>and <00:23:10.911>English <00:23:11.145>examples.

547
00:23:12.545 --> 00:23:15.765
<00:23:12.545>So <00:23:12.661>every <00:23:12.778>one <00:23:12.895>of <00:23:13.011>you <00:23:13.128>who <00:23:13.245>will <00:23:13.361>receive <00:23:13.478>the <00:23:13.595>slides <00:23:13.711>in <00:23:13.828>the <00:23:13.945>end

548
00:23:15.825 --> 00:23:16.845
<00:23:15.825>can, <00:23:16.054>uh, <00:23:16.284>watch <00:23:16.513>these <00:23:16.743>videos

549
00:23:16.945 --> 00:23:19.765
<00:23:16.945>and <00:23:17.085>I <00:23:17.225>spend <00:23:17.365>a <00:23:17.504>lot <00:23:17.645>of <00:23:17.784>time <00:23:17.925>explaining <00:23:18.064>it <00:23:18.205>in <00:23:18.345>ways

550
00:23:19.765 --> 00:23:21.765
<00:23:19.765>that <00:23:20.045>it <00:23:20.325>can <00:23:20.605>be <00:23:20.885>applied <00:23:21.165>directly.

551
00:23:22.345 --> 00:23:24.005
<00:23:22.345>So <00:23:22.545>if <00:23:22.745>we've <00:23:22.945>done <00:23:23.145>this, <00:23:23.345>we <00:23:23.545>are <00:23:23.745>more

552
00:23:24.005 --> 00:23:25.405
<00:23:24.005>or <00:23:24.320>less <00:23:24.635>done <00:23:24.950>with <00:23:25.264>analyzability.

553
00:23:25.465 --> 00:23:27.965
<00:23:25.465>We <00:23:25.620>have <00:23:25.776>a <00:23:25.931>good <00:23:26.087>and <00:23:26.242>clear <00:23:26.398>structure <00:23:26.553>and <00:23:26.709>the <00:23:26.865>readability

554
00:23:27.965 --> 00:23:30.165
<00:23:27.965>because <00:23:28.165>every <00:23:28.365>method, <00:23:28.564>if <00:23:28.764>a <00:23:28.965>class <00:23:29.165>is <00:23:29.365>small,

555
00:23:30.225 --> 00:23:32.925
<00:23:30.225>so <00:23:30.352>we <00:23:30.479>can <00:23:30.606>quickly <00:23:30.734>understand <00:23:30.861>what <00:23:30.988>is <00:23:31.115>going <00:23:31.243>on <00:23:31.370>if <00:23:31.497>we <00:23:31.625>have

556
00:23:32.925 --> 00:23:34.645
<00:23:32.925>to <00:23:33.205>make <00:23:33.485>a <00:23:33.764>change <00:23:34.044>or <00:23:34.325>extension.

557
00:23:35.505 --> 00:23:38.005
<00:23:35.505>Second <00:23:35.660>part <00:23:35.816>we <00:23:35.971>have <00:23:36.127>to <00:23:36.282>be <00:23:36.438>care <00:23:36.593>of <00:23:36.749>is <00:23:36.905>decoupling.

558
00:23:38.855 --> 00:23:42.205
<00:23:38.855>Decoupling <00:23:38.995>means <00:23:39.135>we <00:23:39.275>have <00:23:39.415>two <00:23:39.555>systems, <00:23:39.695>system <00:23:39.835>A <00:23:39.975>and <00:23:40.115>system <00:23:40.255>B,

559
00:23:42.385 --> 00:23:44.725
<00:23:42.385>and <00:23:42.540>both <00:23:42.696>systems <00:23:42.851>depend <00:23:43.007>on <00:23:43.162>each <00:23:43.318>other <00:23:43.473>for <00:23:43.629>whatever <00:23:43.785>reason.

560
00:23:45.425 --> 00:23:48.845
<00:23:45.425>And <00:23:45.565>the <00:23:45.705>the <00:23:45.845>key <00:23:45.985>concept <00:23:46.125>behind <00:23:46.264>this <00:23:46.405>that <00:23:46.544>we <00:23:46.685>have <00:23:46.825>contracts

561
00:23:48.845 --> 00:23:51.325
<00:23:48.845>and <00:23:49.078>implementation <00:23:49.311>in <00:23:49.545>each <00:23:49.778>and <00:23:50.011>every <00:23:50.245>system

562
00:23:51.825 --> 00:23:55.005
<00:23:51.825>and <00:23:52.000>in <00:23:52.175>the <00:23:52.350>middle <00:23:52.525>we <00:23:52.700>normally <00:23:52.875>extract <00:23:53.050>a <00:23:53.225>contract.

563
00:23:55.155 --> 00:23:56.405
<00:23:55.155>This <00:23:55.530>contract <00:23:55.905>is <00:23:56.280>useful

564
00:23:56.405 --> 00:24:00.205
<00:23:56.405>because <00:23:56.532>we <00:23:56.659>now <00:23:56.786>not <00:23:56.914>longer <00:23:57.041>work <00:23:57.168>from <00:23:57.295>our <00:23:57.423>system <00:23:57.550>A <00:23:57.677>against <00:23:57.805>an

565
00:24:00.205 --> 00:24:03.325
<00:24:00.205>implementation, <00:24:00.438>but <00:24:00.671>we <00:24:00.905>work <00:24:01.138>against <00:24:01.371>a <00:24:01.605>contract.

566
00:24:03.435 --> 00:24:05.965
<00:24:03.435>This <00:24:03.668>is <00:24:03.901>a <00:24:04.135>so-called <00:24:04.368>dependency <00:24:04.601>inversion <00:24:04.835>principle.

567
00:24:06.345 --> 00:24:07.925
<00:24:06.345>And <00:24:06.578>with <00:24:06.811>this <00:24:07.045>concept, <00:24:07.278>we <00:24:07.511>can <00:24:07.745>more

568
00:24:07.925 --> 00:24:10.765
<00:24:07.925>or <00:24:08.125>less <00:24:08.325>decouple <00:24:08.524>each <00:24:08.725>dependency <00:24:08.925>in <00:24:09.125>our <00:24:09.325>application.

569
00:24:11.225 --> 00:24:13.765
<00:24:11.225>For <00:24:11.365>example, <00:24:11.504>with <00:24:11.645>classes, <00:24:11.784>I <00:24:11.925>hope <00:24:12.064>every <00:24:12.205>one <00:24:12.344>of <00:24:12.485>you <00:24:12.625>done

570
00:24:13.765 --> 00:24:16.485
<00:24:13.765>that <00:24:13.940>already <00:24:14.115>means <00:24:14.290>we <00:24:14.465>have <00:24:14.640>class <00:24:14.815>A, <00:24:14.990>class <00:24:15.165>B,

571
00:24:16.705 --> 00:24:19.845
<00:24:16.705>and <00:24:16.845>we <00:24:16.985>simply <00:24:17.125>put <00:24:17.264>an <00:24:17.405>interface <00:24:17.544>in <00:24:17.685>between, <00:24:17.824>which <00:24:17.965>is <00:24:18.105>used

572
00:24:19.845 --> 00:24:24.205
<00:24:19.845>by <00:24:19.972>class <00:24:20.099>A <00:24:20.226>and <00:24:20.354>uh, <00:24:20.481>and <00:24:20.608>um, <00:24:20.735>is <00:24:20.863>implemented <00:24:20.990>by <00:24:21.117>Class <00:24:21.245>B,

573
00:24:24.905 --> 00:24:25.965
<00:24:24.905>but <00:24:25.143>it's <00:24:25.382>not <00:24:25.620>done <00:24:25.859>yet

574
00:24:25.965 --> 00:24:27.885
<00:24:25.965>because <00:24:26.165>we <00:24:26.365>have <00:24:26.564>still <00:24:26.764>more <00:24:26.965>layers <00:24:27.165>on <00:24:27.365>top.

575
00:24:27.945 --> 00:24:29.485
<00:24:27.945>For <00:24:28.291>example, <00:24:28.638>our <00:24:28.984>component <00:24:29.331>layer.

576
00:24:29.825 --> 00:24:32.365
<00:24:29.825>And <00:24:29.980>the <00:24:30.136>component <00:24:30.291>layer <00:24:30.447>means <00:24:30.602>we <00:24:30.758>have <00:24:30.913>a <00:24:31.069>component <00:24:31.225>A,

577
00:24:32.625 --> 00:24:33.725
<00:24:32.625>we <00:24:32.872>have <00:24:33.120>a <00:24:33.367>component <00:24:33.615>B,

578
00:24:33.865 --> 00:24:36.085
<00:24:33.865>and <00:24:34.020>we <00:24:34.176>could <00:24:34.331>also <00:24:34.487>have <00:24:34.642>a <00:24:34.798>dependency <00:24:34.953>from <00:24:35.109>component <00:24:35.265>A

579
00:24:36.085 --> 00:24:38.445
<00:24:36.085>to <00:24:36.260>component <00:24:36.435>B, <00:24:36.610>and <00:24:36.785>you <00:24:36.960>can <00:24:37.135>decouple <00:24:37.310>all <00:24:37.485>classes.

580
00:24:38.825 --> 00:24:40.645
<00:24:38.825>If <00:24:39.105>you <00:24:39.385>don't <00:24:39.665>decouple <00:24:39.945>your <00:24:40.225>components,

581
00:24:40.985 --> 00:24:42.765
<00:24:40.985>you <00:24:41.264>again <00:24:41.544>have <00:24:41.824>a <00:24:42.104>monolithic <00:24:42.385>structure,

582
00:24:43.315 --> 00:24:45.845
<00:24:43.315>therefore, <00:24:43.548>we <00:24:43.781>do <00:24:44.015>the <00:24:44.248>same <00:24:44.481>trick <00:24:44.715>again,

583
00:24:45.905 --> 00:24:47.845
<00:24:45.905>we <00:24:46.185>create <00:24:46.465>a <00:24:46.745>a <00:24:47.024>component <00:24:47.305>contract

584
00:24:48.025 --> 00:24:49.565
<00:24:48.025>and <00:24:48.302>reference <00:24:48.579>it <00:24:48.856>from <00:24:49.133>both <00:24:49.411>sides,

585
00:24:49.625 --> 00:24:51.445
<00:24:49.625>and <00:24:49.905>then <00:24:50.185>the <00:24:50.465>component <00:24:50.745>is <00:24:51.025>decoupled.

586
00:24:51.545 --> 00:24:53.045
<00:24:51.545>And <00:24:51.713>the <00:24:51.882>same <00:24:52.051>is <00:24:52.220>of <00:24:52.388>course <00:24:52.557>true <00:24:52.726>if <00:24:52.895>you

587
00:24:53.045 --> 00:24:54.285
<00:24:53.045>create <00:24:53.417>a <00:24:53.789>layered <00:24:54.161>architecture.

588
00:24:54.355 --> 00:24:57.005
<00:24:54.355>Layered <00:24:54.555>architecture <00:24:54.755>mean <00:24:54.955>we <00:24:55.155>have <00:24:55.355>UI <00:24:55.555>logic <00:24:55.755>data

589
00:24:57.185 --> 00:25:00.245
<00:24:57.185>and <00:24:57.418>crosscutting, <00:24:57.651>and <00:24:57.885>we <00:24:58.118>put <00:24:58.351>simply <00:24:58.585>contracts

590
00:25:00.245 --> 00:25:01.605
<00:25:00.245>between <00:25:00.857>this <00:25:01.469>systems

591
00:25:02.105 --> 00:25:03.525
<00:25:02.105>and <00:25:02.360>with <00:25:02.616>a, <00:25:02.871>well, <00:25:03.127>with <00:25:03.383>a,

592
00:25:03.525 --> 00:25:05.725
<00:25:03.525>with <00:25:03.758>a <00:25:03.991>a <00:25:04.225>dependency <00:25:04.458>inversion <00:25:04.691>principle, <00:25:04.925>again,

593
00:25:05.905 --> 00:25:08.605
<00:25:05.905>we <00:25:06.080>can <00:25:06.254>decouple <00:25:06.430>all, <00:25:06.605>uh, <00:25:06.780>layers <00:25:06.955>from <00:25:07.129>each <00:25:07.305>other.

594
00:25:08.745 --> 00:25:11.725
<00:25:08.745>So <00:25:08.885>if <00:25:09.024>you <00:25:09.165>create <00:25:09.304>an <00:25:09.445>architecture, <00:25:09.584>keep <00:25:09.725>an <00:25:09.864>eye <00:25:10.004>on <00:25:10.145>SRP,

595
00:25:11.725 --> 00:25:14.045
<00:25:11.725>keep <00:25:11.899>an <00:25:12.074>eye <00:25:12.250>on <00:25:12.425>naming <00:25:12.600>patterns, <00:25:12.774>especially <00:25:12.949>naming <00:25:13.125>patterns.

596
00:25:14.285 --> 00:25:17.725
<00:25:14.285>Unbelievable. <00:25:14.460>Great. <00:25:14.635>And <00:25:14.810>then <00:25:14.985>decouple <00:25:15.160>your <00:25:15.335>classes <00:25:15.510>as <00:25:15.685>well

597
00:25:17.765 --> 00:25:20.525
<00:25:17.765>as <00:25:17.905>your <00:25:18.045>components, <00:25:18.185>as <00:25:18.325>well <00:25:18.465>as <00:25:18.605>your <00:25:18.745>layers <00:25:18.885>from <00:25:19.025>each <00:25:19.165>other.

598
00:25:21.605 --> 00:25:23.005
<00:25:21.605>Question <00:25:21.815>again, <00:25:22.025>how <00:25:22.235>can <00:25:22.445>that <00:25:22.655>be <00:25:22.865>achieved

599
00:25:23.275 --> 00:25:25.165
<00:25:23.275>with <00:25:23.625>the <00:25:23.975>dependency <00:25:24.325>inversion <00:25:24.675>principle?

600
00:25:25.165 --> 00:25:26.965
<00:25:25.165>Already <00:25:25.514>talked <00:25:25.865>about <00:25:26.215>it. <00:25:26.565>All

601
00:25:26.965 --> 00:25:28.565
<00:25:26.965>of <00:25:27.198>you <00:25:27.431>should <00:25:27.665>know <00:25:27.898>the <00:25:28.131>solid <00:25:28.365>principles.

602
00:25:28.905 --> 00:25:30.725
<00:25:28.905>We <00:25:29.138>have <00:25:29.371>the <00:25:29.605>s <00:25:29.838>for <00:25:30.071>single <00:25:30.305>responsibility,

603
00:25:30.785 --> 00:25:33.125
<00:25:30.785>and <00:25:30.925>the <00:25:31.065>D <00:25:31.205>at <00:25:31.345>the <00:25:31.485>end <00:25:31.625>is <00:25:31.765>for <00:25:31.905>dependency <00:25:32.045>inversion <00:25:32.185>principle.

604
00:25:33.505 --> 00:25:36.005
<00:25:33.505>The <00:25:33.705>principles <00:25:33.905>in <00:25:34.105>between <00:25:34.305>are, <00:25:34.505>I <00:25:34.705>guess <00:25:34.905>just

605
00:25:36.225 --> 00:25:37.965
<00:25:36.225>for <00:25:36.458>creating <00:25:36.691>a <00:25:36.925>great <00:25:37.158>name, <00:25:37.391>like <00:25:37.625>solid.

606
00:25:38.465 --> 00:25:40.125
<00:25:38.465>But <00:25:38.814>again, <00:25:39.165>this <00:25:39.514>is <00:25:39.865>more

607
00:25:40.125 --> 00:25:42.965
<00:25:40.125>or <00:25:40.280>less <00:25:40.436>the, <00:25:40.591>um, <00:25:40.747>the <00:25:40.902>video <00:25:41.058>where <00:25:41.213>I <00:25:41.369>explain <00:25:41.525>it.

608
00:25:43.185 --> 00:25:44.765
<00:25:43.185>And <00:25:43.465>if <00:25:43.745>you <00:25:44.024>decouple <00:25:44.304>your <00:25:44.585>application,

609
00:25:44.865 --> 00:25:49.205
<00:25:44.865>you <00:25:45.020>get <00:25:45.176>all <00:25:45.331>other <00:25:45.487>things, <00:25:45.642>uh, <00:25:45.798>yeah, <00:25:45.953>solved <00:25:46.109>as <00:25:46.265>well.

610
00:25:49.515 --> 00:25:51.765
<00:25:49.515>This <00:25:49.670>is, <00:25:49.826>like <00:25:49.981>I <00:25:50.137>said, <00:25:50.292>a <00:25:50.448>short <00:25:50.603>introduction <00:25:50.759>to, <00:25:50.915>uh,

611
00:25:51.785 --> 00:25:55.005
<00:25:51.785>to <00:25:51.925>architecture, <00:25:52.065>how <00:25:52.205>you <00:25:52.345>can <00:25:52.485>solve <00:25:52.625>it <00:25:52.765>from <00:25:52.905>start <00:25:53.045>to <00:25:53.185>end

612
00:25:55.155 --> 00:25:56.445
<00:25:55.155>with <00:25:55.542>some <00:25:55.928>additional <00:25:56.316>videos.

613
00:25:56.865 --> 00:25:59.045
<00:25:56.865>Um, <00:25:57.098>for <00:25:57.331>this <00:25:57.565>I <00:25:57.798>provide <00:25:58.031>consulting <00:25:58.265>service.

614
00:25:59.145 --> 00:26:02.325
<00:25:59.145>So <00:25:59.300>if <00:25:59.456>you <00:25:59.611>have <00:25:59.767>questions <00:25:59.922>about <00:26:00.078>architecture, <00:26:00.233>wanna <00:26:00.389>do, <00:26:00.545>uh,

615
00:26:02.325 --> 00:26:03.485
<00:26:02.325>architecture <00:26:03.369>trainings

616
00:26:03.485 --> 00:26:04.845
<00:26:03.485>or <00:26:03.791>doing <00:26:04.097>a <00:26:04.403>code <00:26:04.709>review,

617
00:26:05.115 --> 00:26:06.845
<00:26:05.115>just <00:26:05.290>write <00:26:05.465>me <00:26:05.640>an <00:26:05.815>email <00:26:05.990>or <00:26:06.165>speak <00:26:06.340>with <00:26:06.515>me.

618
00:26:06.865 --> 00:26:09.205
<00:26:06.865>I'm <00:26:07.040>later <00:26:07.215>on <00:26:07.390>here <00:26:07.565>upfront <00:26:07.740>to, <00:26:07.915>to <00:26:08.090>this <00:26:08.265>location.

619
00:26:09.505 --> 00:26:12.085
<00:26:09.505>And <00:26:09.680>of <00:26:09.855>course, <00:26:10.030>just <00:26:10.205>for <00:26:10.380>the <00:26:10.555>German <00:26:10.730>speaking <00:26:10.905>audience,

620
00:26:12.365 --> 00:26:15.765
<00:26:12.365>I <00:26:12.520>have <00:26:12.676>remote <00:26:12.831>workshops, <00:26:12.987>which <00:26:13.142>can <00:26:13.298>be <00:26:13.453>attended <00:26:13.609>next <00:26:13.765>month.

621
00:26:16.225 --> 00:26:18.685
<00:26:16.225>And <00:26:16.504>that's <00:26:16.784>all <00:26:17.064>from <00:26:17.344>my <00:26:17.625>side.