Professional Documents
Culture Documents
Lecture 3a Architecture Design Process
Lecture 3a Architecture Design Process
Lecture 3
Architecture Design Process
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Software Architecture: Foundations, Theory, and Practice
Overview
Design Process
Architectural Conception
Styles and Patterns
2
Software Architecture: Foundations, Theory, and Practice
3
Software Architecture: Foundations, Theory, and Practice
Method
4
Software Architecture: Foundations, Theory, and Practice
Objectives
Creativity
Enhance your skillset
Method
Focus on highly effective techniques
5
Software Architecture: Foundations, Theory, and Practice
6
Software Architecture: Foundations, Theory, and Practice
Design Strategies
Standard
Linear model described above
Cyclic
Process can revert to an earlier stage
Parallel
Independent alternatives are explored in parallel
Architectural Conception
9
Software Architecture: Foundations, Theory, and Practice
10
Software Architecture: Foundations, Theory, and Practice
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
Pieces of interest, focus areas, features or behaviors
(functional)
Layered design (technical)
11
Software Architecture: Foundations, Theory, and Practice
Modularity
Designing a system that is divided into a set of
functional units that can be composed into a larger
application
A module represents a set of related concerns
12
Software Architecture: Foundations, Theory, and Practice
13
Software Architecture: Foundations, Theory, and Practice
Simple Machines
Domain Simple Machines
16
Software Architecture: Foundations, Theory, and Practice
Separation of Concerns
17
Software Architecture: Foundations, Theory, and Practice
Conferences
18
Software Architecture: Foundations, Theory, and Practice
19
Software Architecture: Foundations, Theory, and Practice
20
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
Domain-Specific Software
Architectures
A DSSA is an assemblage of software components
specialized for a particular type of task (domain),
Architectural Patterns
22
Software Architecture: Foundations, Theory, and Practice
State-Logic-Display: Three-Tiered
Pattern
Application Examples
Business applications
Multi-player games
Web-based applications
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
Model-View-Controller (MVC)
24
Software Architecture: Foundations, Theory, and Practice
Model-View-Controller
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
Sense-Compute-Control
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
Sense-Compute-Control LL
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
Problems with
Sense-Compute-Control
Sense and compute phases are very computationally
demanding because all the information is centrally
processed.
Works for something like the Lunar Lander game but
impractical in most AI and robotics applications.
Solution: Implement the system as a set of behavioral
modules (horizontal slices) that process (sense and
compute) only some information. [Rodney Brooks,
1980’s, MIT]
29
Software Architecture: Foundations, Theory, and Practice
Architectural Styles
31
Software Architecture: Foundations, Theory, and Practice
Design reuse
Well-understood solutions applied to new problems
Code reuse
Shared implementations of invariant aspects of a style
Interoperability
Supported by style standardization
Style-specific analyses
Enabled by the constrained design space
Visualizations
Style-specific depictions matching engineers’ mental models
34
Software Architecture: Foundations, Theory, and Practice
35
Software Architecture: Foundations, Theory, and Practice
37
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.