Professional Documents
Culture Documents
Software Architecture
Lecture 1
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Software Architecture: Foundations, Theory, and Practice
The Origins
Software Engineers have always employed software
architectures
Very often without realizing it!
2
Software Architecture: Foundations, Theory, and Practice
3
Software Architecture: Foundations, Theory, and Practice
Accidental Difficulties
Solutions exist
Possibly waiting to be discovered
4
Software Architecture: Foundations, Theory, and Practice
time
Remedied by time–sharing
Turnaround time approaching limit of human
perception
Difficulty of using heterogeneous programs
5
Software Architecture: Foundations, Theory, and Practice
Essential Difficulties
Complexity
Conformity
Changeability
Intangibility
6
Software Architecture: Foundations, Theory, and Practice
Complexity
program
Except perhaps “toy” programs
7
Software Architecture: Foundations, Theory, and Practice
Conformity
Hardware
8
Software Architecture: Foundations, Theory, and Practice
Changeability
Hardware problems
9
Software Architecture: Foundations, Theory, and Practice
Intangibility
No obvious representation
E.g., familiar geometric shapes
10
Software Architecture: Foundations, Theory, and Practice
Pewter Bullets
11
Software Architecture: Foundations, Theory, and Practice
12
Software Architecture: Foundations, Theory, and Practice
Easy backtracking
Early prototypes
Great designers
Good design can be taught; great design cannot
13
Software Architecture: Foundations, Theory, and Practice
Primacy of Design
very beginning
But how do we go about the task of architectural
design?
14
Software Architecture: Foundations, Theory, and Practice
Design (blueprints)
Construction
Use
15
Software Architecture: Foundations, Theory, and Practice
16
Software Architecture: Foundations, Theory, and Practice
Deeper Parallels
17
Software Architecture: Foundations, Theory, and Practice
18
Software Architecture: Foundations, Theory, and Practice
Needs of customers
19
Software Architecture: Foundations, Theory, and Practice
20
Software Architecture: Foundations, Theory, and Practice
21
Software Architecture: Foundations, Theory, and Practice
Conceptual integrity
22
Software Architecture: Foundations, Theory, and Practice
23
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
24
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
25
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
26
Software Architecture: Foundations, Theory, and Practice
on the Web.
All communication between user agents and origin servers
must be performed by a simple, generic protocol (HTTP),
which offers the command methods GET, POST, etc.
All communication between user agents and origin servers
must be fully self-contained. (So-called “stateless
interactions”)
27
Software Architecture: Foundations, Theory, and Practice
WWW’s Architecture
28
Software Architecture: Foundations, Theory, and Practice
29
Software Architecture: Foundations, Theory, and Practice
30
Software Architecture: Foundations, Theory, and Practice
32
Software Architecture: Foundations, Theory, and Practice
33
Software Architecture: Foundations, Theory, and Practice
35
Software Architecture: Foundations, Theory, and Practice
36
Software Architecture: Foundations, Theory, and Practice
37
Software Architecture: Foundations, Theory, and Practice
Summary
Software is complex
So are buildings
And other engineering artifacts
analogy
Software engineers can learn from other domains
They also need to develop—and have developed—a rich
body of their own architectural knowledge and
experience
38