Skip to content

Commit dd2350f

Browse files
committed
Fix links in architecture
1 parent eb72f31 commit dd2350f

File tree

1 file changed

+32
-42
lines changed

1 file changed

+32
-42
lines changed

_notes/software-architecture/architecture.md

Lines changed: 32 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@ title: "Architecture"
33
layout: notes
44
---
55

6+
[system-design]: /images/architecture/system-design.svg
7+
[sub-system-model]: /images/architecture/sub-system-model.png
8+
[pipe-filter]: /images/pipe-filter.png
9+
[batch-seq]: /images/batch-seq.png
10+
[batch-seq-ii]: /images/batch-seq-ii.png
11+
[batch-seq-iii]: /images/batch-seq-iii.png
12+
[closed-arch]: /images/closed-arch.png
13+
[open-arch]: /images/open-arch.png
14+
[repository]: /images/repository.png
15+
[repository-ide]: /images/repository-ide.png
16+
[mvc]: /images/mvc.png
17+
[client-server]: /images/client-server.png
18+
[peer-2-peer]: /images/peer-2-peer.png
19+
[process-control]: /images/process-control.png
20+
[event]: /images/event.png
21+
622
# Software Architecture
723
> is a set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both [Clements 2010]
824
@@ -12,8 +28,7 @@ layout: notes
1228

1329

1430
# System/Subsystem Design
15-
![](images/architecture/system-design.svg)
16-
31+
![system-design]
1732

1833
# System Decomposition
1934
* *subsystem* provides a set of *services* to the system
@@ -24,8 +39,7 @@ layout: notes
2439

2540

2641
# System/Subsystem Model
27-
![](images/architecture/sub-system-model.png)
28-
42+
![sub-system-model]
2943

3044
# Architectural Style
3145
* An *architectural style* defines a family of systems in terms of a pattern of structural organization
@@ -35,23 +49,19 @@ layout: notes
3549
* Vocabulary of *components* and *connectors*
3650
* Constraints on how they are combined
3751

38-
3952
# Common Architectural Styles
40-
4153
* Dataflow Systems
4254
* Pipe and Filter
4355
* Batch Sequential
4456
* Virtual Machines
4557
* Rule-based Systems
4658
* Interpreters
47-
* Repository
59+
* repository
4860
* Databases
4961
* Hypertext Systems
5062
* Blackboards
5163

52-
5364
# Common Architectural Styles (continued)
54-
5565
* Independent Components
5666
* Peer-to-Peer
5767
* Client Server
@@ -62,21 +72,17 @@ layout: notes
6272
* Layered Systems
6373
* Object-Oriented Systems
6474

65-
6675
# Pipe and Filter Architecture
6776
* Subsystems are called *filters* and associations between the filters are called *pipes*
6877
* Filters only know the content and format of data being received and produced, nothing about the other filters in the system
6978
* Filters execute concurrently with synchronization via pipes
7079
* Very reconfigurable
7180
* Transformational systems
7281

73-
7482
# Pipe and Filter Model
75-
![](images/pipe-filter.png)
76-
83+
![images/pipe-filter.png]
7784

7885
# UNIX Examples
79-
8086
```
8187
# Replace TRUE with LITERAL_TRUE in every cpp and hpp file
8288
find . -name "*.cpp" -o -name "*.hpp" | xargs -I% sed -i.back "s/TRUE/LITERAL_TRUE/g" %
@@ -85,51 +91,41 @@ find . -name "*.cpp" -o -name "*.hpp" | xargs -I% sed -i.back "s/TRUE/LITERAL_TR
8591
git log --pretty="%aN" | sort | uniq -c | sed "s/ *//" | cut -d ' ' -f2 -f1,3-10
8692
```
8793

88-
8994
# Batch Sequential Architecture
9095
* A small number of large stand-alone subsystems
9196
* Must be executed in a fixed sequential ordering (batch)
9297
* Typically work on large flat files, transforming the file into a new format or a new ordering so the next subsystem can work on the data
9398
* The shared, specific file tightly couples the subsystems
9499
* No realtime feedback, no concurrency
95100

96-
97101
# Batch Sequential Model
98-
![](images/batch-seq.png)
99-
102+
![images/mvc.png]
100103

101104
# Batch Sequential Model
102-
![](images/batch-seq-ii.png)
103-
105+
![images/repository-ide.png]
104106

105107
# Batch Sequential Model
106-
![](images/batch-seq-iii.png)
107-
108+
![images/repository.png]
108109

109110
# Layered Architecture
110111
* Hierarchical decomposition of a system into subsystems (layers) with each providing a higher level of services provided from lower-level subsystems
111112
* *closed architecture* each layer can only depend on the layer immediately below
112113
* *open architecture* each layer can access any layer below
113114

114-
115115
# Closed Architecture: OSI Network Model
116-
![](images/closed-arch.png)
117-
116+
![images/open-arch.png]
118117

119118
# Open Architecture: Motif Library
120-
![](images/open-arch.png)
121-
119+
![images/closed-arch.png]
122120

123121
# Repository Architecture
124-
![](images/repository.png)
122+
![images/batch-seq-iii.png]
125123

126124
* Subsystems are independent and interact by a central repository
127125
* Examples: Payroll or banking system, Modern IDE/Compiler, Blackboard
128126

129-
130127
# Repository: IDE
131-
![](images/Repository-ide.png)
132-
128+
![images/batch-seq-ii.png]
133129

134130
# Model/View/Controller
135131
* Subsystems
@@ -140,10 +136,8 @@ git log --pretty="%aN" | sort | uniq -c | sed "s/ *//" | cut -d ' ' -f2 -f1,3-10
140136
* Changes in model state propagate via a subscribe-notify protocol
141137
* Examples: File system, database
142138

143-
144139
# MVC
145-
![](images/MVC.png)
146-
140+
![images/batch-seq.png]
147141

148142
# Client/Server Architecture
149143
* Subsystems:
@@ -154,21 +148,17 @@ git log --pretty="%aN" | sort | uniq -c | sed "s/ *//" | cut -d ' ' -f2 -f1,3-10
154148

155149

156150
# Client/Server Model
157-
![](images/client-server.png)
158-
151+
![images/client-server.png]
159152

160153
# Peer-to-Peer Architecture
161-
![](images/peer-2-peer.png)
162-
154+
![images/peer-2-peer.png]
163155

164156
# Peer-to-Peer Architecture
165157
* Generalization of client/server, clients can be servers and vice versa
166158
* The control flow of each subsystem is independent of others except for the synchronization of requests.
167159

168-
169160
# Process Control Architecture
170-
![](images/process-control.png)
171-
161+
![images/process-control.png]
172162

173163
# Event-driven Architecture
174-
![](images/event.png)
164+
![images/event.png]

0 commit comments

Comments
 (0)