Architectures in Context: Software Architecture
Architectures in Context: Software Architecture
in Context
Software Architecture
Lecture 2
Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Software Architecture: Foundations, Theory, and Practice
Fundamental Understanding
2
Software Architecture: Foundations, Theory, and Practice
3
Software Architecture: Foundations, Theory, and Practice
Requirements
Design
Implementation
Analysis and Testing
Evolution
Development Process
4
Software Architecture: Foundations, Theory, and Practice
Requirements Analysis
5
Software Architecture: Foundations, Theory, and Practice
6
Software Architecture: Foundations, Theory, and Practice
7
Software Architecture: Foundations, Theory, and Practice
8
Software Architecture: Foundations, Theory, and Practice
Their interconnections
9
Software Architecture: Foundations, Theory, and Practice
Architecture-Centric Design
deployment issues
Design Techniques
Abstraction
Modularity
11
Software Architecture: Foundations, Theory, and Practice
Objects
Main abstraction entity in OOD
12
Software Architecture: Foundations, Theory, and Practice
Pros
UML modeling notation
Design patterns
Cons
Provides only
One level of encapsulation (the object)
One notion of interface
One type of explicit connector (procedure call)
Even message passing is realized via procedure calls
OO programming language might dictate important design
decisions
OOD assumes a shared address space
13
Software Architecture: Foundations, Theory, and Practice
DSSA
14
Software Architecture: Foundations, Theory, and Practice
Implementation
15
Software Architecture: Foundations, Theory, and Practice
Faithful Implementation
Unfaithful Implementation
Implementation Strategies
Generative techniques
e.g. parser generators
Frameworks
collections of source code with identified places
where the engineer must fill in the blanks
Middleware
CORBA, DCOM, RPC,
Reuse-based techniques
COTS, open-source, in-house
How It All
Fits
Together
19
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
20
Software Architecture: Foundations, Theory, and Practice
Incomplete specifications
Deadlocks
Security flaws
22
Software Architecture: Foundations, Theory, and Practice
Architecture-centric approach
Sustained focus on an explicit, substantive, modifiable,
faithful architectural model
23
Software Architecture: Foundations, Theory, and Practice
Architecture-Centric Evolution
Process
Motivation
Evaluation or assessment
Design and choice of approach
Action
includes preparation for the next round of adaptation
24
Software Architecture: Foundations, Theory, and Practice
Processes
25
Software Architecture: Foundations, Theory, and Practice
26
Software Architecture: Foundations, Theory, and Practice
Coding
Radius of rotor indicates
level of staffing at time t
ti Design
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
Cross-section at time ti
Design
(activity)
Requirements
Design
doc
28
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
Waterfall example,
Angled perspective
29
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
A Richer Example
Assess/ time
Test/Build/
Deploy
Build/Design/
Requirements/Test
Design/Build/
Requirements S1
Requirements/Architecture
assessment/Planning
30
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
A Sample Cross-Section
31
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
32
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
Test/Build/
Deploy
Build/Design/
Requirements/Test
Design/Build/
Requirements
Requirements/
Architecture Assessment / Planning
33
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
Deployment
Capture of new work
Other
Parameterization
Customization
Assessment
34
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
Visualization Summary
35
Software Architecture: Foundations, Theory, and Practice
36
Software Architecture: Foundations, Theory, and Practice
Summary (1)
Summary (2)
38