Académique Documents
Professionnel Documents
Culture Documents
Design
Software Architecture
Lecture 3
Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights re
Software Architecture
Fun!
Fraught with peril
May be unnecessary
May yield the best result
1)
2)
3)
4)
Method
2
Software Architecture
Objectives
Creativity
Enhance your skill-set
Provide new tools
Method
Focus on highly effective techniques
Develop judgment: when to develop novel
solutions, and when to follow established method
Software Architecture
Software Architecture
Potential Problems
Software Architecture
Standard
Linear model described above
Cyclic
Process can revert to an earlier stage
Parallel
Independent alternatives are explored in parallel
Adaptive (lay tracks as you go)
The next design strategy of the design activity is decided at
the end of a given stage
Incremental
Each stage of development is treated as a task of
incrementally improving the existing design
6
Software Architecture
Software Architecture
Abstraction
Abstraction(1): look at details, and abstract
up to concepts
Abstraction(2): choose concepts, then add
detailed substructure, and move down
Example: design of a stack class
Separation of concerns
8
Software Architecture
Software Architecture
Software Architecture
Simple Machines
Domain
Simple Machines
Graphics
Pixel arrays
Transformation matrices
Widgets
Abstract depiction graphs
Word processing
Structured documents
Layouts
Process control
Hypertext
Spreadsheets
Form templates
Web pages
Hypertext
Composite documents
Scientific computing
Matrices
Mathematical functions
Banking
Spreadsheets
Databases
Transactions
11
Software Architecture
Separation of Concerns
Software Architecture
Software Architecture
14
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
Domain-Specific Software
Architectures
Software Architecture
Architectural Patterns
16
Software Architecture
State-Logic-Display: Three-Tiered
Pattern
Application Examples
Business applications
Multi-player games
Web-based applications
17
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
Model-View-Controller (MVC)
Software Architecture
Model-View-Controller
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
Sense-Compute-Control
20
Software Architecture
21
Software Architecture
Sense-Compute-Control LL
22
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
Architectural Styles
An architectural style is a named collection of
architectural design decisions
A primary way of characterizing lessons from
experience in software system design
Reflect less domain specificity than architectural
patterns
Useful in determining everything from
subroutine structure to top-level application
structure
Many styles exist and we will discuss them in
detail in the next lecture
23
Software Architecture
Software Architecture
25
Software Architecture
Design reuse
Well-understood solutions applied to new problems
Code reuse
Shared implementations of invariant aspects of a style
Understandability of system organization
A phrase such as client-server conveys a lot of information
Interoperability
Supported by style standardization
Style-specific analyses
Enabled by the constrained design space
Visualizations
Style-specific depictions matching engineers mental models
26
Software Architecture
27
Software Architecture
Traditional, language-influenced
styles
Layered
Batch sequential
Pipe and filter
Shared memory
Blackboard
Rule based
Interpreter
Interpreter
Mobile code
Implicit invocation
Virtual machines
Client-server
Data-flow styles
Event-based
Publish-subscribe
Peer-to-peer
Derived styles
C2
CORBA
28
Software Architecture
29
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.