Professional Documents
Culture Documents
Architecture Styles
Software Architecture
Good software engineers make use of architectural
principles when designing complex software
First able to recognize and understand high
First, high--level
relationships among systems so that new systems can
be built as variations on old systems.
Second, getting the right architecture is often crucial to
the success of a software system design; the wrong one
can lead to disastrous results.
Third, detailed understanding of software architectures
allows the engineer to make principled choices among
g alternatives.
design
Fourth, an architectural system representation is often
essential to the analysis and description of the high level
properties of a complex system.
system
Programming Languages to
Software Architecture
High Level Programming Languages
Abstract Data Types
Iff you get the data structures right then
development be easier.
L d to
Leads t understanding
d t di off s/w / structures,
t t
specifications, language issues etc.
S ft
Software A
Architecture
hit t
Common Architectural Styles
y
Common Framework is required to understand
differences between styles
Framework: A specific system is a collection of
components (computational) together with a
description of the interactions between these
components (connectors).
It is like a Graph.
Nodes represent components
Arcs represent connectors (interaction)
St l Defines
Style: D fi a ffamily
il off such
h systems
t iin terms
t
of a pattern of structural organization.
Determines vocabulary and set of constraints.
Questions to understand a Style
Q y
Disadvantages
Not all systems are easily structured in a
layered fashion
Difficult to define system-independent layers
Repositories
p
Two kinds of components:
a central data structure represents the current state,
and a collection of independent components operate
on the central data store.
Traditional database: Types of transactions in an
i
input
t stream
t off ttransaction
ti ttrigger
i selection
l ti off
processes to execute.
Blackboard: Current state of the database is the
main trigger of selecting the processes to
execute
Knowledge sources,
sources blackboard data structure,
structure
Control
Examples: Signal processing, such as speech and
pattern recognition
Table Driven Interpreters
p
A virtual machine is produced in s/w
Interpreter includes
Psuedo
Psuedo-
d -program being
b interpreted
d
Interpretation engine
Commonly used to build virtual machines.
Other Architectures
Distributed processes
For Multi Process Systems
Examples:
p Ring
g or Star Topologies
p g
Client Server
Main program/subroutine organizations
Mirrors programming language in which the system is written
Domain specific s/w architectures
Provide an organizational structure tailored to a family of
applications
E
Examples:
l avionics,
i i command
d and
d control,
t l or vehicle
hi l managementt
systems.
State Transition systems
Common organization for many reactive systems.
systems
Process control systems
Systems intended to provide dynamic control of a physical
environment
Heterogeneous
g Architectures
Most systems typically involve a combinations of
several styles
One way of combining architectural styles is
Hierarchy
Example: Unix pipeline
A second way for styles to be combined is to
permit a single component to use a mixture of
architectural connectors.
Example: Accessing data
A third way for styles to be combined is to
completely
l t l elaborate
l b t one level
l l off architectural
hit t l
description in a completely different architectural
style.
Case Studies
Key word in context
Main p
program/subroutine
g / with shared data
Abstract data types
Implicit
p Invocation
Pipes and filters
Instrumentation software
OO style
Layered
y style
y
Pipe and filter style
Modified pipe and filter style
Case Studies
Compiler
Traditional compiler model
Traditional compiler model with shared data
Modern canonical compiler