Chapter 10: Architectural Design Presented By: Andy Carroll.
-
Upload
nathaniel-dixon -
Category
Documents
-
view
226 -
download
2
Transcript of Chapter 10: Architectural Design Presented By: Andy Carroll.
![Page 1: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/1.jpg)
Chapter 10: Architectural Design
Presented By:Andy Carroll
![Page 2: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/2.jpg)
Software Architecture: What is it? Structure or structures of the system, which
comprise software components, the externally visible properties of those components, and the relationships among them
Two Levels Data Design Architectural Design
![Page 3: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/3.jpg)
Software Architecture The architecture is not the operational
software. Rather, it is a representation that enables a software engineer to: Analyze the effectiveness of the design in meeting its
stated requirements, Consider architectural alternatives at a stage when
making design changes is still relatively easy, and Reduce the risks associated with the construction of the
software.
![Page 4: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/4.jpg)
Importance? Representations of software architecture are
enablers for communication The architecture highlights early design decisions Architecture “constitutes a relatively small,
intellectually graspable model of how the system is structured and how its components work together”
Most important?
![Page 5: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/5.jpg)
Data Design: Architectural Level Multiple Databases Data mining: Knowledge Discovery in
Databases (KDD) Data Warehousing
![Page 6: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/6.jpg)
Data Design: Component Level Focuses on representation of data structures
that are directly accessed by software components
Best practices: Develop data abstractions Ensure relationships established Simplify where possible
Examples?
![Page 7: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/7.jpg)
Principles of Data Design
1. The systematic analysis principles applied to function and behavior should also be applied to data.
2. All data structures and the operations to be performed on each should be identified
3. A mechanism for defining the content of each data object should be established and used to define both data and the operations applied to it.
4. Low-level design decisions should be deferred until late in the design process.
5. The representation of a data structure should be known only to those modules that must make direct use of the data contained within the structure.
6. A library of useful data structures and the operations that may be applied to them should be developed.
7. A software design and programming language should support the specification and realization of abstract data types.
![Page 8: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/8.jpg)
Architectural Styles Styles describe a category defined by:
A set of components that perform a function Set of connectors that enable communication Constraints on integration of components Semantic models that help the understanding of overall
properties of a system Types of Architectures
Data-centered Data flow Call and Return ( Main Program/Subprogram and Remote
Procedure Call) Object Oriented Layered
![Page 9: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/9.jpg)
Data-Centered
Example?
![Page 10: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/10.jpg)
Data Flow
Examples?
![Page 11: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/11.jpg)
Call and Return
![Page 12: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/12.jpg)
Layered
![Page 13: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/13.jpg)
Architectural Patterns Concurrency: applications must handle
multiple tasks in a manner that simulates parallelism
Persistence: Data persists if it survives past the execution of the process that created it. Two patterns are common: DBMS Pattern Application Level Persistence Pattern
Distribution: the manner in which systems or components within systems communicate with one another in a distributed environment
![Page 14: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/14.jpg)
Organization and Refinement Assessing architectural style:
Control How is control managed? Does a hierarchy exist? How is control transferred?
Data How is data communicated? Is flow continuous? Sporadic? Component interaction with data?
When might data flow be continuous? Sporadic?
![Page 15: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/15.jpg)
Architectural Design Representing in context: interaction with
target system Superordinate Systems Subordinate Systems Peer-Level Systems Actors
Archetypes: one element of the system Nodes, Detectors, Indicators, Controllers
Refining: implementation of previously defined archetypes
![Page 16: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/16.jpg)
Architectural Context Example
target system: Security Function
uses
uses peershomeowner
Safehome Product
Internet-based system
surveillance function
sensors
control panel
sensors
uses
![Page 17: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/17.jpg)
Archetype Example
Figure 10.7 UML relationships for SafeHome security function archetypes (adapted from [BOS00])
Controller
Node
communicates with
Detector Indicator
![Page 18: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/18.jpg)
Components Example
SafeHome Executive
External Communication Management
GUI Internet Interface
Function selection
Security Surveillance Home management
Control panel
processing
detector management
alarm processing
![Page 19: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/19.jpg)
Refined Components Example
sensorsensorsensorsensor
sensorsensorsensor
sensor
External Communication Management
GUI Internet Interface
Security
Control
panelprocessing
detector
managementalarm
processing
Keypad processing
CP display functions
scheduler
sensorsensorsensorsensor
phone communication
alarm
SafeHome Executive
![Page 20: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/20.jpg)
Analyzing the Design Collect scenarios Elicit requirements, constraints,
environment description Describe architectural designs or
patterns that have been chosen Evaluate quality attributes in isolation Identify the sensitivity of quality
attributes to various attributes for a specific style
Critique candidate architectures
![Page 21: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/21.jpg)
Architectural Complexity Sharing dependencies Flow dependencies Constrained dependencies
Could these be related or causal?
![Page 22: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/22.jpg)
Mapping Data Flow to Architecture Transform Mapping
1. Review the fundamental system model.2. Review and refine data flow diagrams for the
software3. Determine whether the DFD has transform or
transaction flow characteristics.4. Isolate the transform center by specifying
incoming and outgoing flow boundaries.5. Perform “first-level factoring”6. Perform “second-level factoring”7. Refine the first-iteration architecture using
design heuristics for improved software quality.
![Page 23: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/23.jpg)
Flow Characteristics
Transform flow
Transactionflow
![Page 24: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/24.jpg)
Transform Mapping
data flow model
"Transform" mapping
ab
c
d e fg h
ij
x1
x2 x3 x4
b c
a
d e f g i
h j
![Page 25: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/25.jpg)
Factoring
typical "worker" modules
typical "decision making" modules
direction of increasing decision making
![Page 26: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/26.jpg)
First Level Factoring
main programcontroller
inputcontroller
processingcontroller
outputcontroller
![Page 27: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/27.jpg)
Second Level Factoring
D
C
B A
A
C
B
Dmapping from the flow boundary outward
main
control
![Page 28: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/28.jpg)
Mapping Data Flow to Architecture Transaction Mapping
1. Review the fundamental system model.2. Review and refine data flow diagrams for the
software3. Determine whether the DFD has transform or
transaction flow characteristics.4. Isolate the transaction center and the flow
characteristics along each of the action paths.5. Map the DFD in a program structure amenable
to transaction processing.6. Factor and refine the transaction structure and
the structure of each action path.7. Refine the first-iteration architecture using
design heuristics for improved software quality.
![Page 29: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/29.jpg)
Transaction Mapping
a
b
t
g
h
d
e
f
i
k
j
l
m
n
Data flow model
x1
b
a
t
x2 x3 x4
d e f g h x3.1 l m n
i j
k
mapping
program structure
![Page 30: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/30.jpg)
Isolate Flow Paths
readcommand
validatecommand
determinetype
readrecord
calculateoutputvalues
formatreport
produceerror msg
readfixturestatus
determinesetting
formatsetting
sendcontrolvalue
command
commandinvalid command
error msg
status
combinedstatus
raw setting
fixture setting
robot control
start/stop
assemblyrecord
record
values
report
valid command
![Page 31: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/31.jpg)
Map the Flow Model
process operator
commands
command input
controller
read command
validate command
produce error
message
determine type
fixture status
controller
report generation controller
send control value
each of the action paths must be expanded further
![Page 32: Chapter 10: Architectural Design Presented By: Andy Carroll.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649d8c5503460f94a735d8/html5/thumbnails/32.jpg)
Refining
process operator
commands
command input
controller
read command
validate command
produce error
message
determine type
send control value
read fixture status
determine setting
format setting
read record
calculate output values
format report
fixture status
controller
report generation controller