Académique Documents
Professionnel Documents
Culture Documents
456502.0
Lecture 1
@ Cobol (B3040)
Components
Lectures: 9-12 (18-24h)
Exercises: 3 individually returned studies
Tests: 16.12.2011, 20.1.2012, 17.2.2012, 4.5.2012
1-Nov-11
Materials
1-Nov-11
Materials
C. Hofmeister, R. Nord, D. Soni: Applied Software
1-Nov-11
Software Architecture
Architecture
Old art and ancient engineering discipline
Software
The industry begun in late 40s
Software architecture
Much less mature than computer hardware
architecture
Common excuses
Software industry is young and unique
Yet: our economy relies on software
products
5
1-Nov-11
Petersburg.
Software today speeds the process of drug discovery, potentially
curing Alzheimer's.
Software today drives the imaging systems that allow the early
detection of breast cancer and other maladies.
Software controls the passive restraint systems and antilock
breaking systems that save children's lives in automobiles every
day.
Software powers our communication and transportation
technologies.
Software allows us to peer deep within ourselves and study the
human genome.
Software allows us to explore and understand our universe.
And, make no mistake about it, we are just getting started
Paul Levy
6
1-Nov-11
Designing software
Beyond algorithms/ data structures of the computation
New kind of problem: overall system structure
1-Nov-11
1-Nov-11
Software architecture
1.
2.
1-Nov-11
SA as a design plan
Structural plan that describes
The elements of a system
How they fit together
How they work together to fulfill requirements
Used as blueprint during development
process
Used to negotiate system requirements
Used to set expectations with
Customers
Marketing/management personnel
10
1-Nov-11
SA as design plan
Project manager uses the design plan as input to
Domain analysis,
Requirements analysis,
Risk analysis
SA design
Hardware
Architecture
design
Detailed design,
Coding,
Integration, Testing
11
1-Nov-11
SA as an abstraction
SA not a comprehensive decomposition of a
system
Implementation details abstracted away,
granularity
How elements fulfill the requirements
Element interactions
Element dependencies on execution platform
12
1-Nov-11
Design tradeoffs
Resolving tradeoffs may lead to
Sacrificing some desired qualities
E.g., simplicity
Compromising some requirements
Renegotiating
Reducing portability, modifiability, etc
13
1-Nov-11
SA goal
One should strive for a good architecture
When system is implemented according to the
or not understandable
14
1-Nov-11
SA terminology
Architectural style/pattern
1.
2.
15
1-Nov-11
SA terminology, 2
Product-line architecture
3.
16
1-Nov-11
SA terminology,3
Software architecture
4.
17
1-Nov-11
SA terminology, 4
Defines element
types and how
they interact
Defines the
mapping of
functionality to
architecture
elements
Defines instances
of architecture
elements
yes
sometimes
no
yes
yes
no
yes
yes
sometimes
yes
yes
yes
Term
An architectural
style
A reference
architecture
A product-line
architecture
A software
architecture
SA terminology, final
ADL (architectural description language)
5.
19
1-Nov-11
HENCE:
We need to study software architecture
Our society is software-reliant
Software systems are complex
Software architecture
Addresses the complexity of the systems to build
Course goal
Understand what SA is
SA very much an emerging discipline
The philosophy
One should not focus on designing the ideal architecture
Instead: focus on carefully examining tradeoffs
We will learn to recognize and evaluate
20
1-Nov-11
Design,
Recognize
Documenting
1-Nov-11
influences
A SA also influences technical, business, and
social influences
That, subsequently, influence future SAs
Business Cycle
Organizational goals requirements SA
22
1-Nov-11
Stakeholders
Architectures influenced by stakeholders
Management: low cost, keep people employed
Marketing: short time to market, low cost
Customer: timely delivery, not changed often
End user: behavior, performance, security
Maintenance: modifiability
23
1-Nov-11
behavior
Sometimes the only development concern
Systems often need to be redesigned for
Maintainability
Portability
Scalability
Speed
Security etc
Compromise
24
1-Nov-11
More on functionality
Functionality and quality attributes: orthogonal
We therefore need to separate concerns
no structure
25
1-Nov-11
attributes
These qualities designed and evaluated at
architectural level
Architecture does not achieve these qualities
They are achieved via details (implementation)
26
1-Nov-11
Quality attributes
System qualities
Availability, modifiability, performance, security,
testability, usability
Business qualities
Time-to-market, etc
Architecture qualities
Conceptual integrity, etc
27
1-Nov-11
System qualities
Of interest to software people since 70s
Many definitions, own communities
Problems
Non-operational definitions
Aspects belong to which quality
Distinct vocabularies
28
1-Nov-11
29
1-Nov-11
QA scenario parts
Source of stimulus
Human/computer system/other actuator generating
the stimulus
Stimulus
Condition that needs to be evaluated when arrives
at the system
Environment
The conditions the system is in
(overload/running/failed etc)
30
1-Nov-11
QA scenario parts,2
Artifact
Something that is stimulated (whole system/ certain
system part)
Response
Activity undertaken upon stimulus arrival
Response measure
Response should be measurable in some manner
31
1-Nov-11
QA scenarios
General QA scenarios
System independent
Can potentially pertain to any system
Concrete QA scenarios
Specific to the particular system under
consideration
Same role as use cases for specifying functional
requirements
32
1-Nov-11
QA Scenario Generation
We need to generate meaningful QA
33
1-Nov-11
Availability
Readiness of usage
Concerned with system failures and
consequences
Failure
Deviation from intended functional behavior
Observable by system users
Failure vs fault
Fault: event which may cause an error
Error: incorrect internal system state
34
1-Nov-11
Availability concerns
How system failure is detected
How frequently system failure may occur
What happens when a failure occurs
How long is a system allowed to be
unoperable
When can failures occur safely
How to prevent failures
What kind of notifications are required when a
failure occurs
35
1-Nov-11
Automatic repair
Maintenance: scheduled downtimes
Probability
Mean time to fail/(mean time to fail+mean time to
repair)
36
1-Nov-11
Internal/external to system
Stimulus
Artifact
Environment
Response
Response
measure
Modifiability
Concerns cost of change
1.
2.
38
1-Nov-11
System environment
Systems to interoperate with, communication protocols
System qualities
Reliability, performance, modifiability
Capacity
Number of users supported, of supported operations
39
1-Nov-11
Compile-time
Build
Configuration setup
Execution
By
developers, end users, system administrator
40
1-Nov-11
Stimulus
Artifact
Environment
Response
Response
measure
Performance
Concerned with timing
how long it takes a system to respond when an
event occurs
Events
Interrupts, messages, requests from users, passage
of time
Complication
Number of event sources and arrival patterns
42
1-Nov-11
Stochastic
Events arrive according to some probabilistic
distribution
Sporadical
43
1-Nov-11
System responses
Latency
Time between stimulus arrivaland systems response to it
Deadlines in processing
Throughput in the system
Number of transactions system can process in a second
Jitter of the response
Variation in latency
Number of events not processed
Because system too busy to respond
Lost data
Because system too busy
44
1-Nov-11
Stimulus
Artifact
System
Environment
Response
Response
measure
1-Nov-11
45
Security
Measure of systems ability
to resist unauthorized usage
to provide services to legitimate users
46
1-Nov-11
Example attacks
Theft of money by electronic means
Theft of credit card numbers
Destruction of files on computer systems
Denial-of-service attacks by worms, viruses
47
1-Nov-11
Security components
Nonrepudiation
Transaction cannot be denied by any of its parties
Confidentiality
Data/service protected from unauthorized access
Integrity
Data/services delivered as intended
Assurance
Parties in a transactions are who they say they are
Availability
System ready for legitimate use
Auditing
System tracks activities within it to be able to reconstruct them
48
1-Nov-11
Stimulus
Artifact
Environment
Response
Response
measure
various
1-Nov-11
various
Software Architectures, Lecture 1
49
50
Authenticates user
Hides identity of user
Blocks/allows acces to data/services
Grants/withdraws permission to access
data/services
Records access/modification or attempts
Stores data in certain formats
Recognizes access/usage roles
Informs users on other systems
Restricts availability of services
1-Nov-11
51
measures successfully
Probability of detecting attack, identifying attacker
Percentage of services still available under DoS
attack
Restore data/services
Extent to which data/services damaged or
legitimate access denied
1-Nov-11
Testability
Easiness with which SW can demonstrate its
execution
Assuming the software has at least one fault
Response measures
Effectivness of tests (in finding faults)
How long do satisfiable tests last
52
1-Nov-11
Testable system
It must be possible
to control each components internal state and
inputs
To observe the outputs
Test harness
Specialized software designed for exercizing the
SW under test
53
1-Nov-11
54
1-Nov-11
Stimulus
Artifact
Environment
Response
Response
measure
Usability
Concerned with
How easy it is for the user to accomplish a desired
task
User support type the system provides
Usability problems are usually discovered during
56
1-Nov-11
Usability areas
Learning system features
Using a system efficiently
Minimizing the impact of errors
Adapting system to user needs
Increasing confidence and satisfaction
57
1-Nov-11
End user
Stimulus
Artifact
System
Environment
Response
Various
Response
measure
59
1-Nov-11
Communicating concepts
General scenarios
Need to make stakeholders communicate
Each attribute community has own vocabulary
Different terms can mean the same thing
Stimuli can occur during runtime or before
Architects job: understand which stimuli
Represent the same ocurence
Are aggregates of other stimuli
Are independent
When stimuli relations are clear
Communicate them to stakeholders
Use appropriate language for each stakeholder category
60
1-Nov-11
Stimuli
Availabiliy
Modifiability
Performance
Security
Testability
Usability
1-Nov-11
61
Quality attributes
Are the requirements for SA
Have to be captured
Scenarios
62
1-Nov-11
To read
http://www.computer.org/portal/web/computingno
63
1-Nov-11
Software Architectures
Lecture 2
8.11.2011
Tactics
Qualities achieved via design decisions
What design decisions needed for achieving a
specific quality?
Tactic
Design decision that influences the control of a
8.11.2011
Architectural style
A package of tactics
Tactics can refine other tactics
Redundancy is refined by data redundancy, code redundancy
Example
One availability tactic: introduce redundancy
Implication: we also need synchronization of replicas
To ensure the redundant copy can be used if the original fails
8.11.2011
Availability tactics
Failure
Deviation from intended functional behavior
Observable by system users
Failure vs fault
Fault: event which may cause a failure
Availability tactics
Keep faults from becoming failures
Make possible repairments
8.11.2011
Recoverypreparation
and repair
Voting
Ping/Echo
Active
Heartbeat
redundancy
Exception
Passive
redundancy
Spare
Recoveryreintroduction
Prevention
Fault masked
Removal
Repair made
Shadow
from service
State
Transactions
resynchronization
Process
Rollback
monitor
8.11.2011
bandwidth usage
7
8.11.2011
8.11.2011
raised
A fault consequently is recognized
Exception handler
Executes in same process that introduced the
exception
Typically does a semantic transformation of fault
into a processable form
8.11.2011
10
8.11.2011
Synchronization
All messages to any redundant component sent to all
redundant components
11
8.11.2011
must make
Fault occurs:
System checks if backup sufficiently fresh before
resuming services
Often used in control systems
Periodical switchovers increase availability
12
8.11.2011
13
8.11.2011
shadow mode
For a while
To make sure it mimics the behavior of the working
components
Before restoring it to service
14
8.11.2011
return to service
Update depends on
Downtime
Size of update
Number of messages required for the update
One preferable; more lead to complicated SW
15
8.11.2011
Component reintroduction:
checkpoint/ rollback
Checkpoint
Record of a consistent state
Created periodically or in response to specific
events
Useful when a system fails unusually, with
16
8.11.2011
Component prevention
Removal from service
Comp removed from operation to undergo some
Modifiability tactics
Goal: controlling time and cost to implement, test,
18
8.11.2011
Localize
changes
Changes
arrive
19
Semantic
coherence
Anticipate
expected
changes
Generalize
module
Abstract
common
services
Prevention of
ripple effects
Hide information
Maintain
existing interface
Restrict comm
paths
Use an Intermediary
Defer binding
time
Runtime
registration
Configuration
files
Polymorphism
Component
replacement
Adherence to
defined
protocols
Changes
Made,
Tested,
Deployed
Within
Time and
Budget
8.11.2011
responsibilities in a module
Goal: ensure all these responsibilities work
together w/o excessive reliance on other modules
Goal achievement: design modules with
responsibilities in semantic coherence
20
8.11.2011
modules
Reuse and modifiability
Modifications to common services done only once
21
8.11.2011
22
8.11.2011
8.11.2011
localized modules
There are modules directly affected
Whose responsibilities are adjusted to accomplish change
There are modules indirectly affected by a change
Whose responsibilities remain unchanged BUT
implementation needs to be changed to accommodate the
directly affected modules
24
8.11.2011
Ripple effects
Ripple effect from a modification
The necessity of making changes to modules not
directly affected by it
This happens because said modules are
SOMEHOW dependent on the modules directly
dealing with the modification
25
8.11.2011
Dependency types
We assume
Module A changed to accomplish particular
modification
Module B changed only because A changed
There are several dependency types
Syntax, semantics, sequence, identity of interface,
26
8.11.2011
Syntax dependency
Of data
B consumes data produced by A
Type and format of data in both A and B need to be
consistent
Of service
B invokes services of A
Signature of services produced by A need to be
27
8.11.2011
Semantics dependency
Of data
B consumes data produced by A
Semantics of data produced by A and consumed by
28
8.11.2011
Sequence dependency
Of data
B consumes data produced by A
B must receive the data produced by A in a fixed
sequence
Of control
A must have executed previously within certain time
constraints
29
8.11.2011
Identity of interface of A
A may have multiple interfaces
B uses one of them
For B to compile and execute correctly, the
30
8.11.2011
Other dependencies
Runtime location of A
Must be consistent with Bs assumptions
Resource behavior of A
Must be consistent with Bs assumptions
31
8.11.2011
32
8.11.2011
Information hiding
Decomposition of responsibilities into smaller
propagating
Strongly related to anticipate expected changes (it
uses those changes as basis for decomposition)
33
8.11.2011
Interface stability
Separating interface from implementation
34
8.11.2011
by given module
Reduce nr of modules that produce data consumed
by given module
Reduced ripple effect
Data production/consumption introduces
dependencies
35
8.11.2011
Use an intermediary
B dependent on A in other ways than semantically
Possible to introduce an intermediary to manage
the dependency
Data (syntax)
Service (syntax)
Location of A
Existence of A
36
8.11.2011
various times
Binding at runtime
System has been prepared for that binding
All testing and distribution steps already completed
Supports end user/administrator making settings or
37
8.11.2011
registration
Configuration files
38
8.11.2011
Performance tactics
Goal: generate response to an event arriving at
change, etc
Latency: time between the arrival of an event and the
generation of a response to it
Event arrives
System processes it or processing is blocked
39
8.11.2011
Resource
demand
Increase
computation
Events efficiency
Reduce
arrive
computational
overhead
Manage event
rate
Control
frequency of
sampling
40
Resource
management
Introduce
concurrency
Maintain
multiple
copies
Increase
available
resources
Resource
arbitration
Scheduling
policy
Response
generated
within
time limit
8.11.2011
41
8.11.2011
algorithms
Resources may be traded for one another
Reduce computational overhead
If no request for a resource => its processing needs
are reduced
Intermediaries removed
42
8.11.2011
8.11.2011
Resource management
Introduce concurrency
Process requests in parallel
Different event streams processed on different threads
computations
Caching and synchronization
44
8.11.2011
Resource arbitration
Resource contention => resource must be
scheduled
Architects goal
Understand characteristics of each resources use
Scheduling policy
Priority assignment
Dispatching
45
8.11.2011
Scheduling
What: network, buffers, processors
Competing criteria for scheduling
Optimal resource usage
Request importance
Minimizing nr of used resources
Minimizing latency
Maximizing throughput
Preventing starvation to ensure fairness
resource available
Pre-emptying might occur
46
8.11.2011
Scheduling policies
First in/first out (FIFO)
OK if all requests are of equal importance and take same
time
Fixed priority scheduling, priorities based on
Semantic importance (domain specific)
Deadline monotonic (real-time deadlines; shortest
deadline 1st)
Rate monotonic (periodic streams, shorter period 1st)
Dynamic priority scheduling
Round robin
Earliest deadline first
Static scheduling
Security tactics
Goal: resisting attacks, detecting attacks, recovering
from attacks
House defense analogy
Door lock
Motion sensor
Insurance
48
8.11.2011
Resisting
attacks
Attack
Authenticate
users
Authorize users
Maintain data
confidentiality
Maintain integrity
Limit exposure
Limit access
Detecting
attacks
Recovering
from attacks
Restoration
Intrusion
detection
Identification
See availability
System
Detects,
Resists, or
Recovers
from
attacks
Audit trail
49
8.11.2011
Resisting attacks
Authenticate users
Passwords, one-time passwords, digital certificates,
biometric id
Authorize users
Access control patterns
Maintain integrity
Checksums, hash results help
8.11.2011
Detecting attacks
Intrusion detection system
Compares network traffic patterns to database
Misuse => pattern compared to historical patterns of
known attacks
Anomaly => pattern compared to historical baseline
of itself
Filtering
Protocol, TCP flags, payload size, addresses, port numbers
51
Must have
Sensor to detect attacks
Manager for sensor fusion
Databases for storing events for analysis
Tools for offline reporting and analysis
Control console to modify intrusion detection actions
8.11.2011
Intrusion detectors
Sensor to detect attacks
Managers for sensor fusion
Databases for storing events for later analysis
Tools for offline reporting and analysis
Control console
Analyst can modify intrusion detection actions
52
8.11.2011
53
8.11.2011
Audit trail
Copy of each transaction applied to data in
54
8.11.2011
Testability tactics
Goal: allow for easier testing when some increment of
55
8.11.2011
Manage
Input/Output
Completion
of an Increment
56
Record/Playback
Separate Interface
from Implementation
Specialized
Access Routines/
Interfaces
Internal
Monitoring
Built-In
Monitors
Faults
detected
8.11.2011
57
8.11.2011
testing purposes
Stubbing implementations let system be tested without the
58
8.11.2011
59
8.11.2011
60
8.11.2011
Usability tactics
Usability concerns
How easy can a user accomplish desired task
What is the system support for the user
Tactics
Runtime: support user during system execution
Design time: support interface developer
Iterative nature of interface design
Related to modifiability tactics
Refinement of semantic coherence tactic to localize expected
changes
61
8.11.2011
Runtime tactics
User feedback as to what is the system doing
Providing user with ability to issue usability
commands
Cancel
Undo
Aggregate
Show multiple views
62
8.11.2011
Initiatives
HCI terminology
User initiative
System initiative
Mixed initiative
User initiative
Architect designs response as for any other
functionality
System initiative
System needs models: user, task, system state
63
8.11.2011
Usability tactics
Usability
Runtime tactics
user
System
initiative
request
User
initiative
64
Separate
user
interface
User given
appropriate
feedback and
assistance
8.11.2011
QAs
A Software Architecture determined by the
collection of tactics
65
8.11.2011
Software Architectures
Lecture 3
Today:
How do tactics lead to architectural styles
Case studies on architectural styles
to also observe the achieved qualities
10-Nov-11
architectures constrained by
Component/connector vocabulary
Topology rules
Semantic constraints
3
10-Nov-11
Call-and-return systems
Main program & subroutines
Hierarchical layers
OO systems
Virtual machines
Interpreters
Rule-based systems
Independent components
Communicating processes
Event systems
10-Nov-11
10-Nov-11
10-Nov-11
10-Nov-11
starts
Atomic computations
sort
update
report
10-Nov-11
Filter
Incrementally transforms some amount of the data at
10-Nov-11
Overall computation
Run pipes and filters (non-deterministically) until no more
10-Nov-11
generation
Signal processing domains
Parallel programming
Distributed programming
11
10-Nov-11
filters
Support reuse
Maintainability, improvement
Allow analysis (throughouput, deadlock analysis)
Support concurrency
Disadv
Often lead to a batch organization of processing
Not good at handling interactive applications
Quite complex
Not so performant
12
10-Nov-11
Call-and-Return systems
The control moves from a module to another and
back
Different from monolithic systems or pipe and
filter systems
Abstraction made possible
Types
Main program and subroutine
OO, ADT
(Hierarchical) layers
13
10-Nov-11
Hierarchical decomposition
Based on definition-use relationship
Hierarchical reasoning
Correctness of a subroutine depends on the correctness of the subroutines it calls
14
10-Nov-11
15
10-Nov-11
16
Object-orientation
Object: collection of data and operations
Class: description of set of objects
Subclass: class with additional properties
More restrictive than class => fewer members
method
Properties: intuitive, support REUSE
17
10-Nov-11
Object architectures
Encapsulation
Restrict access to certain information
Object responsible for preserving integrity of its
representation (invariant)
Inheritance
Share one definition of shared functionality
Dynamic binding
Determine actual operation to call at runtime
Management of many objects
Provide structure on large set of definitions
Reuse and maintenance
Exploit encapsulation and locality
18
10-Nov-11
19
10-Nov-11
Disadvantages
Identity of interacting objects need to be known ->
10-Nov-11
Layered Systems
Each layer provides certain facilities
Hides part of lower layer
Provides well-defined interfaces
Serves various functions
Kernels: provide core capability, often set of
procedures
Various scoping regimes
Opaque versus translucent layers
21
10-Nov-11
22
10-Nov-11
Disadvantages
Not all systems suitable for this
Performance may require other coupling
Abstraction quite hard
23
10-Nov-11
Interpreters
Execution engine simulated in software
Data
Representation of program being interpreted
Data (program state) of program being interpreted
Internal state of interpreter
Control resides in execution cycle of
interpreter
But simulated control flow in interpreted program
24
10-Nov-11
25
10-Nov-11
Rule-based systems
Store and manipulate knowledge to interpret
Components
List of rules or rule base
An inference engine
Temporary working memory
User interface
26
10-Nov-11
27
10-Nov-11
Communicating Processes
Components: independent processes
Typically implemented as separate tasks
28
10-Nov-11
Event Systems
Components: objects or processes
Interface defines a set of incoming procedure calls
Interface also defines a set of outgoing events
Connectors: event-procedure bindings
Procedures are registered with events
Components communicate by announcing events at
appropriate times
When an event is announced the associated
procedures are (implicitly invoked)
Order of invocation is non-deterministic
In some treatments connectors are event-event
bindings
29
10-Nov-11
10-Nov-11
Classical Databases
Central data repository
Schemas designed specifically for application
Independent operators
Operations on database implemented
independently, one per transaction type
Interact with database by queries and updates
Control
Transaction stream drives operation
Operations selected on basis of transaction type
31
10-Nov-11
32
10-Nov-11
10-Nov-11
34
10-Nov-11
35
10-Nov-11
1. KWIC
In his paper (1972) David Parnas proposed
10-Nov-11
37
10-Nov-11
38
10-Nov-11
functions
Input, shift, alphabetize, output
39
10-Nov-11
40
10-Nov-11
Disadvantages
Modifiability
Change in data format affects all components
Change in overall processing algorithm
Enhancements to system function
Reuse not easy to do
41
10-Nov-11
42
10-Nov-11
43
10-Nov-11
44
10-Nov-11
Implicit invocation
Shared data as the integration mechanism
More abstract data interfaces
Data accessed as a list/set
modified
Line added -> event to shift module
Circular shifts produced in another shared data
45
10-Nov-11
46
10-Nov-11
Disadvantages
Difficult to ctrl processing order of implicitly invoked
modules
Data representation uses more space
47
10-Nov-11
Distributed ctrl
Data sharing
Only the one transmitted on pipes
48
10-Nov-11
49
10-Nov-11
10-Nov-11
Comparison
Shared data ADT
Impl.
invocation
Pipe and
filter
Changes in the
processing
algorithm
Changes in the
data representation
Enhancement to
system function
+
-
+
+
Performance
Reuse
10-Nov-11
51
2. Instrumentation software
Develop a reusable system architecture for
oscilloscopes
Rely on digital technology
Have quite complex software
10-Nov-11
53
10-Nov-11
Object-oriented model of
software domain
Clarified the data types used for oscilloscopes
Waveforms, signals, measurement, trigger modes,
together
Confusion about partitioning of functionality
Should measurements be associated with types of
10-Nov-11
55
10-Nov-11
56
10-Nov-11
Pipe-and-filter model
Signal transformers used to condition external signals
Acquisition transformers derive digitized waveforms
57
10-Nov-11
58
10-Nov-11
59
10-Nov-11
60
10-Nov-11
10-Nov-11
62
10-Nov-11
Instrumentation software
summary
Case study shows
Some issues for developing architectures for
industrial SW
Different styles => different effects on solution
Software must be typically adapted from pure
63
10-Nov-11
3. Mobile Robotics
The system controls a manned or partially
manned vehicle
Car, submarine, space vehicle,
64
10-Nov-11
response
65
10-Nov-11
66
10-Nov-11
Req 2: uncertainty
The robot needs to act based on incomplete and unreliable
information
Req 3: account for dangers
Fault tolerance, safety, performance
Req 4: flexibility
Application development requires experimentation and
reconfiguration
67
10-Nov-11
68
10-Nov-11
69
10-Nov-11
Solution 1 cont
The four requirements?
Req 1: deliberative and reactive behaviour
+ simplicity of paradigm
- simplicity a problem in unpredictable environments
components?
70
10-Nov-11
Solution 1 cont
The four requirements?
Req 2: uncertainty
- A trial-and-error process
Req 3: account for dangers
+ simplicity makes duplication easy
Req 4: flexibility
+ the major components (supervisor, sensors, motors)
separate and replaceable
71
10-Nov-11
Solution 1 cont
Summary:
Paradigm appropriate for simple robotics
Can handle only a small number of external events
No really for complex decomposition of tasks
72
10-Nov-11
actions
Dealing with problems in level 7
73
10-Nov-11
Solution 2 cont
The four requirements?
Req 1: deliberative and reactive behaviour
+ More components to delegate tasks to
+ indicates concerns that must be addressed
Sensor integration
+ defines abstraction levels to guide the design
Robot ctrl vs navigation
- does not fit the actual data and control-flow patterns
- does not separate the data hierarchy (1-4) from the control
hierarchy (1,5-8)
74
10-Nov-11
Solution 2 cont
The four requirements?
Req 2: uncertainty
+ abstraction layers manage this
Req 4: flexibility
- interlayer dependencies an obstacle
- complex relationships between layers can become difficult
to manage
75
10-Nov-11
Solution 2 cont
Summary:
Provides a framework for organizing components
Precise about roles of layers
Problems when adding detail at implementation
level
The communication pattern in a robot will not follow the
76
10-Nov-11
between tasks
Dynamic reconfiguration of task trees at run time
between tasks
Tasks communicate by multicasting messages via a
10-Nov-11
Solution 3 cont
TCAs implicit invocation of msgs supports:
Exceptions: exception handling override tasks
Change processing mode
Can abort or retry tasks
Better suited for managing spontaneous events
tasks
Safety-checks of outgoing commands
78
10-Nov-11
Solution 3 cont
The four requirements?
Req 1: deliberative and reactive behaviour
+ Separation of action and reaction via the task trees and
exceptions, wiretapping and monitors
+ concurrency explicit: multiple actions can proceed
simultaneously and independently
- though in practice limited by the central message server
- relies on a central control point
79
10-Nov-11
Solution 3 cont
The four requirements?
Req 2: uncertainty
- not explicitly in the model
Req 3: dangers
+ exception, wiretapping, monitors
+ fault tolerance by redundancy
Multiple handlers registered for same signal, one fails another
takes over
Multiple occurrences of same request: concurrently
Req 4: flexibility
+ implicit invocation allows incremental development and
replacement of components
80
Solution 3 cont
Summary:
TCA offers a comprehensive set of features for
coordinating tasks
Appropriate for complex robot projects
81
10-Nov-11
Solution 4: blackboard
Based on the following components:
82
10-Nov-11
Solution 4 cont
The four requirements?
Req 1: deliberative and reactive behaviour
+ components interact via the shared repository
- control flow must be coerced to fit the database
mechanism
Components do not communicate directly
Req 2: uncertainty
+ blackboard the means for resolving conflicts and
uncertainties
All data available in the database
83
10-Nov-11
Solution 4 cont
The four requirements?
Req 3: account for dangers
+ communication via a central service, the database
Req 4: flexibility
+ Supports concurrency
+ Decouples senders from receivers
84
Facilitates maintenance
10-Nov-11
Solution 4 cont
Summary:
The architecture is capable of modelling the
cooperation of tasks
Coordination
Resolving uncertainty
85
10-Nov-11
Comparison
Control loop Layers
Task coordination
Dealing with
uncertainty
Fault tolerance
Safety
Performance
Flexibility
10-Nov-11
Impl.
invocation
Blackboard
+-
++
+-
+-
++++-
+++-
++
++
++
+
+
+
+
+
86
necessary
Small case studies are useful for illustrative
purposes
Same (rather basic) ideas come back in our field
Dropbox
Cloud computing
Wikipedia
87
10-Nov-11
Software Architectures
Lecture 4
achieved qualities
Today: how to build an architecture with ADD
method
First exercise set is available on the web
2
15-Nov-11
SA terminology,3
Software architecture
4.
15-Nov-11
SA design
Hardware
Architecture
design
Detailed design,
Coding,
Integration, Testing
4
15-Nov-11
15-Nov-11
Requirements
Architecture is shaped by requirements
Functional, quality, and business requirements
Called architectural drivers
Identifying drivers
Determine highest priority business goals (few!)
Turn these business goals into quality scenarios
Choose the ones with most impact on architecture:
these are the architectural drivers (less than 10)
15-Nov-11
15-Nov-11
ADD output
First several levels of a module decomposition view of
an architecture
Not all details of the views result from applying ADD
Necessarily coarse grained
System described as
a set of containers for functionality
the interactions among the containers
15-Nov-11
Case study
Garage door opener
Responsible for raising and lowering the garage
door, via
Switch
Remote control
Home information system
15-Nov-11
Sample input
ADD assumes functional requirements and
constraints as input
ADD also needs the quality requirements
Set of system-specific quality scenarios
These provide a checklist to be used for the
10
15-Nov-11
11
15-Nov-11
12
15-Nov-11
ADD Steps
Choose the module (initially whole system) to
decompose
Required input available for that module
further decomposition
13
15-Nov-11
14
15-Nov-11
system
Case study:
Real-time performance
Modifiability to support product lines
Online diagnosis supported
15
15-Nov-11
16
15-Nov-11
17
15-Nov-11
18
15-Nov-11
information hiding
Separate responsibilities dealing with user interface,
19
15-Nov-11
timing deadline
20
15-Nov-11
distribution of functionality
Add/remove child modules to fulfill required
functionality
Every use case of parent module: representable by
a sequence of responsibilities within child modules
Discover necessary info exchange
Information and producer/consumer roles
21
15-Nov-11
achievement of qualities
We need additional views
Module decomposition view
Concurrency view
Deployment view
22
15-Nov-11
Concurrency view
Models dynamic aspects
Parallel activities
Synchronization
Identifies
Resource contention problems
Possible deadlock situations
Data consistency issues
Leads to uncover new responsibilities in the
23
15-Nov-11
Concurrency view 2
Component-and-connector view
Components: instances of modules
Connectors: carriers of virtual threads
Virtual thread: execution path through system or
parts of it
Virtual versus operating system threads
Synchronizes with, starts, cancels, communicates
with
24
15-Nov-11
Concurrency view 3
Shows instances of modules in module
synchronization needed
25
15-Nov-11
Concurrency view 4
Use cases
Two users doing similar things at the same time
One user performing multiple activities
simultaneously
Starting up the system
Shutting down the system
26
15-Nov-11
Concurrency view 5
Concurrency might also be a point of variation
Sequential initialization for some products, parallel
for others
In this case the decomposition should support
techniques to vary the initialization method
Exchanging component
27
15-Nov-11
Deployment view
New responsibilities from need to deploy
On multiple processors or specialized hardware
congestion
28
15-Nov-11
Deployment view 2
Decide if multiple instances of some modules are
needed
Reliability
hardware
Architecture drivers help determining the
allocation of components to hardware
Replication vs real-time scheduling
29
15-Nov-11
can depend
Module decomposition view documents
Producers/consumers on information
Patterns of interaction requiring modules to provide
30
15-Nov-11
31
15-Nov-11
32
15-Nov-11
decomposition
Done for
Functional requirements
Constraints
Quality requirements
33
15-Nov-11
Functional requirements
Child modules have responsibilities
Derived from functional requirements
decomposition
Use cases for the module
Split and refine parent use cases
traceability
34
15-Nov-11
Case study
Initial responsibilities
Open/close door on request
Locally or remotely
Stop door within 0.1 sec when detect obstacle
Interact with HIS
Support remote diagnostics
35
15-Nov-11
Case study 2
Decomposition of responsibilities
User interface: recognize user requests and
Obstacle detection
36
15-Nov-11
Case study 3
Decomposition of responsibilities, more:
Communication VM
Manage communication with HIS
Sensor/actuator VM
Manage interaction with sensors and actuators
Scheduler
Guarantee deadline
Diagnosis
Manage interaction with HIS for diagnosis
37
15-Nov-11
Constraints
Constraints of parent module satisfied by
Decomposition satisfies the constraints
Using certain OS
Constraint satisfied by single child module
Special protocol
Constraint satisfied by multiple child modules
Web usage requires two modules (client and server)
38
15-Nov-11
Case study
Constraint: communication with HIS is maintained
Communication virtual machine will recognize if this
is unavailable
Constraint satisfied by a single child
39
15-Nov-11
Quality scenarios
Need to be refined and assigned to child
modules
Possibilities
QS completely satisfied by decomposition
QS may be satisfied by decomposition with
40
15-Nov-11
Case study
Device and controls for opening and closing
41
15-Nov-11
Case study 2
If an obstacle (person/object) is detected by
garage door during descent, it must halt or reopen within 0.1 second
QS delegated to scheduler and obstacle detection
module
Garage door opener should be accessible for
modules
42
15-Nov-11
Step outcome
Decomposition of module into children
Each child has
Set of responsibilities
Set of use cases
Interface
Quality scenarios
Collection of constraints
Enough for next iteration of decomposition
43
15-Nov-11
Iteration progress
Vocabulary of modules and their responsibilities
Variety of use cases and quality scenarios and
detection, etc
44
15-Nov-11
Iteration outcome
We defined enough to allocate work teams and
45
15-Nov-11
Bulletin boards
Web pages
Naming conventions for files
Configuration control system
Team communication
Intra team
High bandwidth
Inter team
Low bandwidth
of concerns
As software systems, the teams should strive for
loose coupling and high cohesion
47
15-Nov-11
Modules as mini-domains
Modules encapsulate changeable details
They exhibit only the interface
Interface common, unified set of services to the users
Domain specialized knowledge or expertise
Examples
Module user interface layer of systems
UI tools independent of UI communication with other modules
Module process scheduler
Process number and algorithms: hidden
Most effective
Assign team members according to their expertise
48
15-Nov-11
Organization Architecture
The expertise determines the architecture
Database specialist
Telecom specialist
49
15-Nov-11
functionality
In order advantageous for project
51
15-Nov-11
Highly distributed
Rigurous time requirements
Modifiability needed
Also integrability
The ease with which separately developed elements can be
52
15-Nov-11
Boeing simulators
53
15-Nov-11
15-Nov-11
Environment
Individuals, atmosphere, threats, weapons, other
aircraft
Instructor
Monitors, initiate training situations
55
15-Nov-11
Fidelity of models
Exp: air pressure
Model considers just the aircraft altitude
Model considers the aircraft altitude and local
weather
Model considers the aircraft altitude, local weather,
nearby aircraft
The more fidelity, the more computational
complexity
56
15-Nov-11
Todays takeout
ADD aims to create a skeleton system
Working interactions
Give a priority to implementing modules
Assign teams to modules
Main idea
Incrementtal developing, testing
SA in the centre
57
15-Nov-11
Software Architecture
Lecture 5
22 November 2011
SA definition
Software architecture of a program or
22 November 2011
What is a view?
Modern software systems are complex
We focus at any time on a small number of
22 November 2011
Architectural structures
Module structures
Component-and-connector structures
Allocation structures
22 November 2011
SA structures
Module
Component-and-connector
Concurrency
Decomposition
Uses
Allocation
Work
Assignment
Class
Shared data
Deployment
Client-server
Process
Layered
Implementation
22 November 2011
Module structures
Elements:
Modules units of implementation
Code-based way of considering the system
Assigned areas of functional responsibility
Less emphasis on how resulting SW manifests at
runtime
Questions answered here:
Primary functional responsibility of each module
What other SW elements can this module use
Hierarchies
22 November 2011
Component-and-connector structures
Elements:
Runtime components main units of computation
Connectors communication vehicles between
components
Questions answered here:
Major executing components and their interactions
Major shared data stores
Replicated parts, data flows, parallel system parts
Changes in system structure as it executes
22 November 2011
Allocation structures
Show the relationship between software
22 November 2011
10
22 November 2011
Module-based structures
Decomposition
Shows how larger modules are decomposed into
smaller ones
Units: modules related by is a submodule of
Recursive decomposition
Common starting point of design
Architect enumerates what the SW units will do
Assigns each item to a module for subsequent design or
implementation
11
22 November 2011
Module-based structures, 2
Decomposition
Modules often have associated products
Interface specs, code, test plans
Provides for system modifiability
Often used as basis for project organization
Structure of documentation, integration, test plans
Units often have organization-specific names
12
22 November 2011
Module-based structures, 3
Uses
Important, often overlooked structure
Units: modules, procedures, resources on the
interface of modules
Units related by uses relation
Unit A uses unit B if the correctness of A requires the
13
22 November 2011
Module-based structures, 4
Layered
Uses relation controlled in a particular way
Layer: coherent set of related functionality
Layer n may only use services of layer n-1
Many variations occur in practice
Relaxing this structural restriction
Layers designed as abstractions that hide
14
22 November 2011
Module-based structures, 5
Class/generalization
Units: classes
Relation: inherits-from, is-an-instance-of
Supports reasoning about
Collections of similar behaviors or capabilities
Parameterized differences (sub-classing)
Reuse, incremental addition of functionality
15
22 November 2011
Component-and-connector-based
structures
Process (communicating processes)
Orthogonal to module-based structures
Deals with dynamic aspects of a running system
Units: processes or threads
Connected by communication, synchronization, exclusion
operations
Relation: attachment
Describes how component and connector related to each
other
Important to systems execution performance and
availability
16
22 November 2011
Component-and-connector-based
structures, 2
Concurrency
Units: components connected by logical threads
Logical thread
Sequence of computation
Can be allocated to a physical thread later
Allows architect to determine
Opportunities for parallelism
Location where resource contention may occur
Used early in design to identify concurrent
execution issues
17
22 November 2011
Component-and-connector-based
structures, 3
Shared data, repository
Comprises components and connectors that
Create, store, access persistent data
Useful for systems structured around shared data
repositories
Shows how data is produced and consumed by
runtime SW elements
Can be used to ensure performance and data
integrity
18
22 November 2011
Component-and-connector-based
structures, 4
Client-server
Useful for systems built as cooperation of clients
and servers
Components: clients and servers
Connectors: protocols, messages between them,
for carrying out the system work
Useful for
Separation of concerns (modifiability)
Physical distribution
Load balancing (runtime performance)
19
22 November 2011
Allocation-based structures
Deployment
Shows how SW is assigned to HW-processing and
communication elements
Elements
SW (process from C&C view)
HW entities (processors)
Communication pathways
20
22 November 2011
Allocation-based structures, 2
Deployment, 2
Relations
Allocated-to: shows on which physical units the SW
elements reside
Migrates-to: if allocation is dynamic
Allows engineer to reason about
Performance, data integrity, availability, security
Of particular interest in distributed or parallel
systems
21
22 November 2011
Allocation-based structures, 3
Implementation
Shows how SW elements (modules) are mapped to
22
22 November 2011
Allocation-based structures, 4
Work assignment
Assigns responsibility for implementing and
integrating the modules to appropriate teams
Emphasizes that decision about who does what has
architectural and management implications
Architect knows expertise required of each team
Large, multi-sourced distributed development
projects
This structure allows to have units of functional commonality
23
22 November 2011
24
22 November 2011
Structures
Main engineering leverage points of an architecture
Bring with them the power to manipulate one/more quality
attributes
Powerful separation of concerns approach
Useful for architecture documentation
25
22 November 2011
26
22 November 2011
Which structures?
Among architects obligations
Understand how the various structures lead to
quality attributes
Choose the structures that will best deliver those
attributes
27
22 November 2011
Relations
Useful for
Decomposition
Is a submodule of;
shares secret with
Uses
Layered
Class
Relations
Useful for
Client-server
Communicates with;
depends on
Process
Concurrency
Shared data
Produces data;
consumes data
Relations
Useful for
Deployment
Allocated-to; migratesto
Implementation
Stored in
Work
assignment
Assigned to
functionality
There are system properties in addition to
functionality
Physical distribution
Process communication
Synchronization, etc
system
Process structure: engineered to eliminate deadlocks
and bottlenecks
Decomposition structure: engineered to build a
modifiable system
31
22 November 2011
Using SA
Blueprint for system and project developing it
Defines work assignments
Primary carrier of system qualities
Artifact for early analysis
Post-deployment system understanding,
22 November 2011
Documenting SA
Crowning step to crafting it
Good architecture is useless if not understood or
wrongly understood
Architecture should be described
in sufficient details
without ambiguity
organized for information retrieval
33
22 November 2011
Uses of SA documentation
one size fits all does NOT work
Documentation depends on how SA will be used
Documentation should be
Abstract enough for new employees
Detailed enough as analysis blueprint
Specific for specific stakeholders
Security analysis, programmers
Experienced, new
34
22 November 2011
SA documentation
Prescriptive
Prescribes what should be true by placing
constraints on decisions to be made
Descriptive
Describes what is true by recounting decisions
already made about system design
Different stakeholders have different needs
For information kinds, levels, treatments
Stakeholder should quickly find the relevant
documentation
35
22 November 2011
SA documentation 2
Single documentation suite and a roadmap
Different stakeholders can navigate through it
Easy to read
One important user of the documentation
The architect in the projects future
Same architect: repository of thought, storehouse of design
decisions
Different architect: check how predecessors tackled difficult
tasks, why some decisions made
overview
36
22 November 2011
Parts in documenting
1. Choosing relevant views
2. Documenting each relevant view
3. Documenting info that applies to more than one
view
37
22 November 2011
Different views
Support different goals and uses
Highlight different elements and relationships
May be specific to the system
38
22 November 2011
39
22 November 2011
Example of table
40
22 November 2011
41
22 November 2011
Documenting a view
Need for standard organization
Allocating specific info to specific sections =>
Documentation writer can approach the task
Documentation writer can recognize completion
Documentation reader finds info of interest
42
22 November 2011
Other info
43
22 November 2011
44
22 November 2011
Primary presentation
Elements that populate the view and relationships
among them
Not necessarily all of them
system
Exp: normal operation here, exception and error
45
22 November 2011
Element catalog
Details at least the elements and relationships shown
in primary presentation
Backup for primary presentation
Elements and relations omitted from primary
presentation
Belong here
Introduced and explained
Describes
The behavior of elements
The interfaces of elements
46
22 November 2011
Context diagram
Shows how system in the view relates to
47
22 November 2011
Variability guide
Shows how to exercise any variation points part
22 November 2011
Architecture background
Explains why the design reflected in the view
came to be
Why it is as it is
Provides convincing argument that it is sound
Includes
Rationale: why decisions reflected in view were made
and why alternatives were rejected
Analysis results: justifies design or explain what would
have to change in case of modification
Assumptions reflected in the design
49
22 November 2011
Other information
Contents of this section vary according to
contents
50
22 November 2011
Documenting behavior
Structural information (views) not enough
Exp. deadlock possibilities not captured
51
22 November 2011
Banking system
Event sequence more important than actual time
Atomic transaction
Rollback procedure
52
22 November 2011
Behavior notations
Statechart diagrams
Sequence diagrams
Document sequences of stimuli exchanges
Collaboration in terms of component instances and their
interactions
Time sequence shown
Can reply to what parallel activities occur when the
system is responding to these specific stimuli under
these specific conditions?
53
22 November 2011
Documenting interfaces
Interface: boundary between entities
Over boundary elements interact and communicate
elements
Documenting interfaces consists of
Naming and identifying interface: signature
Document its syntax and semantics
54
22 November 2011
Signature
Exp: interface resources are invokable programs
Signature names the programs
Signature defines their parameters
changed by program
C/C++ header file, Java interface
55
22 November 2011
Signature use
Can enable automatic build-up checking
Signature matching
Guarantees a system compiles or links successfully
Does not guarantee if the system operates
successfully
We need semantics of interface for that
What happens when resources are brought into play
56
22 November 2011
57
22 November 2011
view
These elements are likely to have similar/identical
interfaces
A module may appear in more than one module view
Module decomposition view
Uses view
58
22 November 2011
59
22 November 2011
60
22 November 2011
Interface identity
For elements with multiple interfaces
Identify individual interfaces to distinguish them
Naming, version number
61
22 November 2011
Resources provided
Heart of an interface document: resources that
62
22 November 2011
Resource semantics
In natural language, or Boolean algebra, or
traces, or pre/post-conditions
What:
Assignment of values to data accessible by the
22 November 2011
be used
Needed initialization or methods to be invoked
before
Limit on number of actors that can interact with the
resource
Read/write accesses
Security issues
etc
64
22 November 2011
22 November 2011
Exception definition
Exceptions raised by the interface resources
Same exception may be raised by more than one
resource
List each resources exceptions
Define them in a dictionary
Common exception handling also defined here
66
22 November 2011
underlying algorithms
What
Name and range of values for each parameter
Time when its actual value is bound
67
22 November 2011
68
22 November 2011
Element requirements
Specific, named resources provided by other
elements
Syntax, semantics, any usage restrictions
69
22 November 2011
the future
70
22 November 2011
Usage guide
Semantics of resource:
Provided resources + element requirements
Sometimes not enough
Semantics need to be reasoned about in terms of
HOW a broad number of individual interactions
interrelate
Protocol: sequence of interactions documented
Complete behavior of interaction, or
Patterns of usage the element designer expects to come up
repeatedly
22 November 2011
3 major aspects
1. How the documentation is laid out and organized, so that
72
22 November 2011
73
22 November 2011
documentation suite
Using documentation suite as basis for
Communication: necessary for a new reader to determine
74
22 November 2011
75
22 November 2011
work is left to do
76
22 November 2011
77
22 November 2011
78
22 November 2011
Project glossary
Lists and defines terms unique to the system that
79
22 November 2011
requirements/satisfying constraints
Effect on architecture when adding foreseen new
requirement, or changing existing one
Constraints on developer in implementing a solution
Rejected design alternatives: why?
80
22 November 2011
UML notation
Interfaces
81
22 November 2011
UML notation
Modules
82
22 November 2011
UML notation
Relations
83
22 November 2011
UML notation
Decomposition
84
22 November 2011
UML notation
Generalization
85
22 November 2011
UML notation
Layers
86
22 November 2011
UML notation
Instantiation
87
22 November 2011
UML notation
Ports
88
22 November 2011
UML notation
Deployment
89
22 November 2011
system
5 blind men and an elephant; modern version from
Grady Booch:
http://www.computer.org/csdl/mags/so/2010/06/mso201006
0088.html
Documentation is key
And needed in industry anyway
90
22 November 2011
Relations
Useful for
Decomposition
Is a submodule of;
shares secret with
Uses
Layered
Class
Relations
Useful for
Client-server
Communicates with;
depends on
Process
Concurrency
Shared data
Produces data;
consumes data
Relations
Useful for
Deployment
Allocated-to; migratesto
Implementation
Stored in
Work
assignment
Assigned to
Call-and-return systems
Main program & subroutines
Hierarchical layers
OO systems
Virtual machines
Interpreters
Rule-based systems
Independent components
Communicating processes
Event systems
94
22-Nov-11
Software Architectures
Lecture 6
23 November 2011
systems
Study purpose
Understand architectural issues facing designers
Understand current practices, and best practices
Find out commonalities across domains
Find out underlying principles leading to good and
useful SA
23 November 2011
problem
Find out the methods and approaches used by
architects in designing the SA
Find out how the SA was used during development,
maintenance, evolution, other products in the same
family, successors of the product
23 November 2011
most useful
Separating different aspects into different views
helps in managing COMPLEXITY
Conceptual, module, execution, and code views
23 November 2011
separate views
Address different engineering concerns
Each describes a different kind of structure
Structures loosely coupled between views
23 November 2011
23 November 2011
23 November 2011
Global analysis
Purpose
Identify external factors that influence the
architecture
Analyze the above and develop strategies for
accommodating them into architecture
Factor tables
Meant to complement risk analysis and
requirements analysis
Factors
Organizational
Technological
Product
9
23 November 2011
Organizational factors
Constrain design choices
Some apply only to developing product
(development schedule, budget)
Some apply to all products of an organization
(organizational attitudes, SW process)
Record results of analysis process
Individual developers should use them when
making decisions to address specific design
choices
Architect should monitor the efficacy and relevance
of the chosen strategies, make changes if needed
10
23 November 2011
Product factors
Primary influence over the architecture
Functional features of the product
Qualities
Should support future changes
11
23 November 2011
12
23 November 2011
Analyze factors
Identify and describe factors that
Have a significant global influence
Can the factors influence be localized?
Factor important during which stages of development
New expertise and skills for this factor?
Could change during development
Are difficult to satisfy
With which there is little experience
13
23 November 2011
Analyze factors, 2
Factor flexibility: what is negotiable
With any stakeholders
Info needed when factors conflict or cannot be
fulfilled
How to determine
Possible to influence/change factor so that architecture task
becomes easier?
How can be influenced?
To what extent can be influenced?
14
23 November 2011
Analyze factors, 3
Factor changeability: what can change
In the factor itself
In the way you use it in the future
How to determine
In what way could the factor change?
How likely will it change during/after development?
How often?
Will factor be affected by changes in other factors?
15
23 November 2011
Analyze factors, 4
Analyze impact of factors
On the architecture
If one factor was to change, which will be affected
and how:
Other factor?
Components?
Modes of system operation?
Other design decisions?
16
23 November 2011
Factor tables
17
23 November 2011
Develop strategies
Identify issues and their influencing factors
Issue may arise from limitations/constraints
imposed by factors
Exp: aggressive schedule cannot include all requirements
changeability of factors
Exp: reduce cost of porting to another OS
product factors
Exp: high throughput may overload CPU
18
23 November 2011
Develop strategies, 2
Develop solutions and specific strategies that
19
23 November 2011
Develop strategies, 3
Identify related strategies
No strategy duplication
Standard format (issue card) to describe
Each issue, its influencing factors and their impact
General discussion of its solution
Strategies that addresses it
Meaningful names for strategies
20
23 November 2011
Issue card
21
23 November 2011
Technological
factors
Product factors
O1: Management
T2: domain-specific
hardware
P3: performance
O4: development
schedule
T4: architecture
technology
P4: dependability
T5: standards
Example
Example 2
Example 3
Example 4
Example 5
23 November 2011
Global properties
In addition to communication, control
Exp: performance, dependability
Not all properties can be considered in the
conceptual view
Portability in module view
its fulfilled
30
23 November 2011
31
23 November 2011
32
23 November 2011
Design tasks
Global analysis
Prior to this, consider
34
Product requirements
Use cases
System requirements and interactions
Understand interface to environment
Understand users, other interacting systems
Modes of operation for system
Functional requirements, system qualities, global
properties
23 November 2011
view
All product factors
Closest view to domain
Technological factors: domain-specific HW,
35
23 November 2011
interconnect
Map system functionality to components and
connectors
Functional behavior in components
Control behavior in connectors
interconnections
36
23 November 2011
Conceptual components
Both types and instances
Have ports interaction points for component
Both incoming and outgoing messages (operations)
can be ordered
Concentrate the system functionality in them
37
23 November 2011
diagram
38
23 November 2011
Conceptual connectors
Both types and instances
Have roles points of interaction with other
architecture elements
Obey associated protocol
39
23 November 2011
diagram
40
23 November 2011
Conceptual configuration
Define relations among components and
connectors
Conceptual configuration between types
Constrains how instances of the types will be
interconnected
Conceptual configuration containing instances
Defines which instances are in the product and how
they interconnect
41
23 November 2011
instances
Rather late in typical design process
42
23 November 2011
Module view
Main purpose:
Get closer to the systems implementation in
software
Conceptual view
Functional relationships explicit
Module view
Functionality mapping to modules (implementation)
is explicit
Relationships among implementing elements
explicit
How the system uses SW platform (e.g. OS)
repartitioning
23 November 2011
Module view
Functionality + control into modules
Modules require and provide interfaces
No implementation
No configuration
Comes in the execution view
44
23 November 2011
Design tasks
Global analysis, central design, interface
design
Central design uses
Issue cards from global analysis
Components, connectors, configuration from
conceptual view
Central design produces
Modules, subsystems, layers
These will be used in interface design, plus in the central
Feedback
45
23 November 2011
Design tasks
46
23 November 2011
Global analysis
Specific factors
Organizational: staff skills, process and
47
23 November 2011
modules
Create layers
Assign modules to layers
Guidelines
Strategies from global analysis
Experience with prior products
General SW engineering experience
48
23 November 2011
Modules
Map conceptual elements to subsystems and
modules
Subsystem
Higher level conceptual component (contains other
correspond to code
49
23 November 2011
diagram
50
23 November 2011
service
Provided services defined by the provided
interfaces
Required services defined by the required
interfaces
Use dependency
Require and provide relations
51
23 November 2011
development)
Combine modules (for efficiency)
52
23 November 2011
provided by SW platform
Decomposition until understanding well
module responsibilities
Implementation and integration risks
53
23 November 2011
54
23 November 2011
Layers
Organize modules into a partially ordered
hierarchy
Module in a layer
Can use any other module in that layer
Can use modules in other layers too
Required and provided interfaces of such modules are also
required and provided by the layer
23 November 2011
diagram
56
23 November 2011
Layers use
Reduce complexity
Encapsulate external components
COTS SW, HW
Separate system services from user interface SW
Support reuse
Assign common services to an application services layer
Provide for design independence
Change in OS does not affect whole system
57
23 November 2011
58
23 November 2011
Global evaluation
Multiple sources of guidance for central design task
Conceptual view design
Global analysis strategies
SA experience
General knowledge of SA and SW engineering
59
23 November 2011
Global evaluation, 2
Second GE aspect
Look for feedback to tasks and decisions earlier
60
23 November 2011
Global evaluation, 3
Third aspect
Evaluate module view decisions with respect to
each other
Adjust modules and subsystems based on layer decisions
61
23 November 2011
62
23 November 2011
Example interface
63
23 November 2011
Traceability
Describing the relationships of module view to
Requirements, external factors, other views
Items to be traceable:
Critical requirements
Factor tables and issue cards capture product features and
requirements affecting SA
Some traced to conceptual elements, some to modules or
layers
Impact of changes in requirements to module view
Organizational and technological factors
Elements in the conceptual view
64
24 November 2011
65
24 November 2011
Execution view
Main purpose:
Describes system structure in terms of runtime
platform elements
OS tasks, processes, threads, address spaces
Captures
How systems functionality is assigned to the runtime
platform elements
How resulting runtime instances communicate
How physical resources are allocated to them
Location, migration, replication of runtime instances
66
23 November 2011
Execution view, 2
Driving forces
Performance, distribution requirements, runtime platform (SW,
HW)
Used for
Performance analysis, monitoring, tuning, debugging, service
maintenance
Sometimes trivial (single thread, single process)
Provides better preparation for change: This view will
changes/advances in technology
Tightly coupled with performance and distribution
requirements
Tuning of execution view during development
67
23 November 2011
Design tasks
Global analysis, central design, resource allocation
Central design uses
changes (infrequent)
Feedback
New factors, issues, strategies feed back to global analysis
Updates in conceptual view decisions, module repartitioning
68
23 November 2011
Design tasks
69
23 November 2011
Global analysis
Specific factors
Performance requirements, communication
mechanisms
Dependability
Specific strategies
Resource sharing, scheduling policies
Sometimes these are only known later
70
23 November 2011
HW platform
List of HW components used in the system
Topology or interconnection of them
Determine
Which parts of HW platform could change
The likelihood of change
When the change would occur
71
23 November 2011
SW platform
Need to know the infrastructure SW in between
DBMS (nowadays)
Products within a company share common SW
platform (product line products especially)
List platform elements to use in this view
72
23 November 2011
diagram
73
23 November 2011
SW platform, 2
Determine
Which parts of SW platform could change
The likelihood, time, impact of change
SW may change as result of HW change
74
23 November 2011
Runtime entities
To do
Map (conceptual components and) modules to
modules
Demons, other server processes
75
23 November 2011
Runtime entities, 2
Resource
Sharing
Allowed or required among runtime entities
Files, buffers, servers, etc
Replication
Distribution across hosts
23 November 2011
Communication paths
Expected and allowed communication paths
77
23 November 2011
diagram
78
23 November 2011
Execution configuration
The runtime topology of the system
Instances of runtime entities and how they are
connected
Determine runtime instances and their attributes
Corresponding runtime entity and host name
Resource allocation of each instance
Info about creation and destruction
79
23 November 2011
Execution configuration, 2
Describe interconnection of runtime instances
Which runtime instances communicate
Temporary and permanent comm. paths
Execution configuration diagram
Entities and instances of them
Rarely static
Need to determine and describe
How the configuration changes over time
How are the changes controlled
80
23 November 2011
Global evaluation
Multiple inputs for central design task
Conceptual view design
Concurrency among conceptual components, that execution
23 November 2011
Global evaluation, 2
Performance experiments or simulations
Analytic techniques not enough
82
23 November 2011
in configuration task
Allocate them to particular HW resources
Assign specific values to the budgeted
attributes
Exp: setting process priorities
Global analysis
Identified resources to be allocated, HW, and SW
platforms => resulting resources
SW platform
Fixed or configurable number of each type of platform
elements
83
23 November 2011
analysis
And specific strategies
84
23 November 2011
Code view
Describes how SW implementing system is
organized
Source components implement individual elements in
module view
Deployment components instantiate runtime entities in
execution view
Executables, libraries, configuration files
intermediate components
How all of these are organized according to the
development environment of organization
Design decisions related to configuration management,
multiple releases, testing
85
23 November 2011
86
23 November 2011
87
23 November 2011
Code view, 2
Sometimes straightforward
One executable, small development team
Driving forces
Implementation language, development tools,
23 November 2011
Code view, 3
Organizes code components to support
Daily concurrent development tasks
Edit, compile, build, test
Building system parts and releasing them to
versions
89
23 November 2011
Design tasks
Global analysis, central design, final design task
Global analysis
Identify and review inputs to design process
Factors and strategies that influence the code view
90
23 November 2011
Design tasks
91
23 November 2011
Global analysis
Specific factors
Development platform
Development environment
Capabilities of various tools, configuration mgmt, necessary
Development process
Identify process and testing requirements
Development schedule
Analyze whether product released in stages
Analyze whether developers and testers will work
concurrently on multiple releases
92
23 November 2011
to code components
Organize them according to criteria established
during global analysis
93
23 November 2011
Source components
Identify source components
Map elements and dependencies from module
94
23 November 2011
Source components, 2
Typically source components for language-
95
23 November 2011
Source components, 3
Module view elements mapped into language-
96
23 November 2011
Intermediate components
Identify intermediate components
Binary components, static libraries
97
23 November 2011
Intermediate components, 2
Intermediate components specific to the
98
23 November 2011
Deployment components
Identify and map runtime entities and
99
23 November 2011
Deployment components, 2
Deployed at runtime to instantiate runtime entities
Executables
Same as dynamic libraries, but also related to dynamic
libraries by a link dependency
Dynamic libraries
Related to binary components and static libraries by a link
dependency
Configuration descriptions
Can describe processes and resources
100
23 November 2011
Deployment components, 3
Organize deployment components
Small system: simple, one/two packages containing
memory areas
Exp: separately organize each executable and associated
components (required resources and data)
101
23 November 2011
Global evaluation
Input from
Strategies in global analysis
Design decisions in module and execution views
Development environment, execution platform
Major evaluating criteria
Preserving integrity of architectural decisions
Integrating smoothly with development environment,
external components
Other criteria
Consistency, simplicity, uniformity of design decisions
Evaluates all design decisions against these
criteria
102
23 November 2011
tasks
Build procedure
Design procedure for building and installing
103
23 November 2011
components
Coordination and data exchange handled by
connectors
Independence from SW and HW techniques
Logical flow of control
Concerns
How does system fulfill requirements?
COTS components
Incorporated domain-specific HW/SW
Functionality partitioned into product releases
104
23 November 2011
105
reconfiguration requirements
Balancing resource usage
Necessary concurrency, replication, distribution w/o adding
much complexity to control algorithms?
Minimize impact of changes in runtime platform
106
23 November 2011
(e.g. executables)
Modules mapped to source components
How source components produce deployment
components
Concerns
107
23 November 2011
when necessary
108
23 November 2011
throughout architecture
Sequencing design activities
Making design trade-offs
Supporting system qualities (performance)
Supporting general qualities (buildability)
Ensuring no aspects of architecture are
overlooked
Producing useful documentation of
architecture
109
23 November 2011
Todays takeaway
Another set of views
Derived based on the software architecture of
110
24 November 2011
Software Architectures
Lecture 7
29 November 2011
architecture is analyzable
Architecture drives the software system =>
economic value
Good evaluation methods => low-cost risk
mitigation
Architecture evaluation good to be standard
part of every architecture-based development
method
3
29 November 2011
the architecture
When the cost of undoing such decisions > evaluation cost
4
29 November 2011
Discovery review
Very early mini-evaluation
Establishes and prioritizes problematic
requirements
Fewer stakeholders
People with decision power on the requirements
Output
Stronger set of requirements
Initial approach to satisfy the requirements
29 November 2011
29 November 2011
What to do
Counteract the fear
Purpose is architecture improval, not blame pointing
it was devised?
Which of two competing architectures is most
suitable for the system at hand?
Architecture is suitable if
The system that results from it will meet its quality
goals
The system can be built using the resources at
hand (architecture is buildable)
8
29 November 2011
change
A system is secure or not wrt a specific kind of
threat
A system is reliable or not wrt a specific kind of
fault occurrence
A system performs well or not wrt specific
performance criteria
An architecture is buildable or not wrt specific
time and budget constraints
29 November 2011
10
29 November 2011
29 November 2011
suitability
Hypothetical architectures too
Scenario-based
ATAM
CBAM
Checklist- or questionaire-based
Measuring techniques
Rely on quantitative measures over existing artifact
Architectural metrics
Simulations, prototypes
12
29 November 2011
ATAM
Architecture Tradeoff Analysis Method
How well an architecture satisfies particular goals?
Provides insight into how quality goals interact, how
early 1990s
Architectural styles
Quality attribute analysis communities
13
29 November 2011
Participants in ATAM
The evaluation team
Project decision makers
Architecture stakeholders
14
29 November 2011
Summary of ATAM
Preparation (presentations)
1. Present the ATAM
2. Present business drivers
3. Present architecture
Reporting
16
29 November 2011
29 November 2011
political constraints
The business goals and context as they relate to
the project
The major stakeholders
The architectural drivers (the major quality attribute
goals)
18
29 November 2011
Business Context/Drivers
Presentation
(~ 12 slides; 45 minutes)
Description of the business environment, history, market
19
20
29 November 2011
21
29 November 2011
Architecture Presentation
functional: functions, key system abstractions, domain elements along with their dependencies, data flow
module/layer/subsystem: the subsystems, layers, modules that describe the systems decomposition of
functionality, along with the objects, procedures, functions that populate these and the relations among them
(e.g., procedure call, method invocation, callback, containment).
process/thread: processes, threads along with the synchronization, data flow, and events that connect them
hardware: CPUs, storage, external devices/sensors along with the networks and communication devices that
connect them
Architectural approaches or styles employed, including what quality attributes they address and a
description of how the styles address those attributes (3-6 slides)
Trace of 1-3 of the most important use case scenarios. If possible, include the run-time resources
consumed for each scenario (1-3 slides)
Trace of 1-3 of the most important change scenarios. If possible, describe the change impact
(estimated size/difficulty of the change) in terms of the changed components, connectors, or
interfaces. (1-3 slides)
Architectural issues/risks with respect to meeting the driving architectural requirements (2-3 slides)
Glossary (1 slide)
23
29 November 2011
components of utility
24
29 November 2011
25
29 November 2011
26
29 November 2011
27
29 November 2011
Step 6 outputs
Architectural approaches relevant to each high-
28
29 November 2011
More on Step 6
Utility tree shows how to probe the architecture
Architect responds with the architectural approach
29 November 2011
attributes
Here the focus is on the other stakeholders view on
the quality attributes and scenarios based on these
Which are the most meaningful and important
tree scenarios
31
29 November 2011
Growth scenarios
How the architecture is expected to accommodate growth
and change
Expected modifications, changes in performance or availability,
Exploratory scenarios
Extreme forms of growth, how the architecture might be
stressed by changes
Dramatic new performance or availability requirements, major
29 November 2011
29 November 2011
29 November 2011
35
Scenario
#Votes
Quality Attributes
28
Performance
27
26
Performance,
Modifiability,
Availability
10
23
Integrability
12
13
Performance
14
12
Modifiability
29 November 2011
Step 7: Comparison
Scenario prioritization compared to utility tree
Agreement or disagreement
node
Scenario goes onto a new leaf of existing branch
Scenario fits in no branch of the tree (QA not previously
accounted for)
36
29 November 2011
37
Utility trees
Scenario Brainstorming
Stakeholders
All stakeholders
Primary goals
Approach
step
Architect takes items to work on from evaluation
Has to present the architecture
Identify kinds of stakeholders and names!
Evaluators suggests kinds
Client provides names
38
29 November 2011
29 November 2011
29 November 2011
29 November 2011
of scenarios
Mapping of architectural decisions to quality
requirements
A set of identified sensitivity and tradeoff
points
A set of risks and non-risks
A set of risk themes
42
29 November 2011
Other outputs
Secondary outputs
Architecture representation survives evaluation
Scenarios too
Analysis can serve as statement of rationale for
architectural decisions
Made or not
Mitigation strategies
Intangible goals
Social, community sense
Better communication
Improved understanding
43
29 November 2011
Phase 1
Evaluation, architecture-centric
Phase 2
Evaluation continued, stakeholders-centric
Phase 3
Follow-up
44
29 November 2011
Step 2
Present business drivers
Step 3
Present architecture
Step 4
Identify architectural approaches
Step 5
Generate quality attribute utility tree
Step 6
Analyze architectural approaches
45
29 November 2011
Step 8
Analyze architectural approaches
Step 9
Present results
46
29 November 2011
Other methods
CBAM
Cost-Based Analysis Method
Uses ATAM
Measuring technics
Answer specific questions about specific qualities
Need the presence of a design/implementation
29 November 2011
CBAM
Biggest trade-offs influence economics
Resources
Earlier: costs
Of building system, not long term
implications
Basic idea of CBAM
Architectural strategies quality attributes
29 November 2011
CBAM Utilities
Architectural strategy
Provides specific level of utility to stakeholders
Has cost
Takes time to implement
Utility-response curves
Depicts how the utility derived from a particular response
Side effects
49
29 November 2011
Some formulas
Overal utility of architectural strategy across scenarios
Strategy i
Scenario j
Benefit Bi
Benefit bi,j
Weight Wj
Utility U
Return over investment Ri, cost Ci
Bi = j (bi,j Wj)
bi,j = Uexpected-Ucurrent
Ri = Bi/Ci
50
29 November 2011
51
29 November 2011
Software Architectures
Lecture 8
Evaluating an architecture
Today: ADLs and short discussion of formal approaches to
architectures
1.12.2011
1.12.2011
1.12.2011
the system
Used among SW engineers in high-level
descriptions of designs
More precise definitions of these
(would be) Beneficial for SW developers
In the forms in which they appear
In the classes of functionality and interaction they provide
1.12.2011
Memory
Shared collection of persistent structured data
Exp: Database, file system, symbol table, hypertext
Manager
State and closely related operations
Exp: Abstract data type, servers
Controller
Governs time sequences of others events
Exp: Scheduler, synchronizer
Link
Transmits information between entities
Exp: Communication link, user interface
1.12.2011
Procedure call
Single thread of control passes among definitions
Exp: Ordinary procedure call, remote procedure call
Dataflow
Independent processes interact through streams of data
Exp: Unix pipes
Implicit invocation
Computation is invoked by the occurrence of an event; no explicit interactions among
processes
Exp: Event systems, automatic garbage collection
Message passing
Independent processes interact by explicit, discrete hand-off of data; may be synchronous or
asynchronous
Exp: TCP/IP
Shared data
Components operate concurrently (probably with provisions for atomicity) on the same data
space
Exp: Blackboard systems, multiuser databases
Instantiation
Instantiator uses capabilities of instantiated definition by providing space for state required by
instance
Exp: using abstract data types
7
1.12.2011
Operators
Functions that combine components
Exp: iteration, conditional constructs, +,-,*,/
Abstraction
Rules for naming expressions of components and operators
Exp: definition of macros and procedures
Closure
Rules to determine which abstractions can be added to the
classes of primitive components and operators
Exp: procedures or user-defined types - first class entities
Specification
Association of semantics to the syntactic form
Formal, informal (in reference manual)
8
1.12.2011
also different
1.12.2011
10
1.12.2011
1.12.2011
2.
3.
4.
5.
6.
12
environment
ADL: precise descriptions
Environment: (re)uses the descriptions
1.12.2011
Composition
Describe a system as composition of
smaller parts
Assemble a large system from constituent elements
Independent elements
Can be understood in isolation from the system
of architectural level
14
1.12.2011
Composition, 2
Another name: modularity
Closure rule: can see entities as both primitives
and composites
At different levels of abstraction
composite
15
1.12.2011
Composition, 3
Need for explicit and abstract composition rules
Pipe and filter
Sequence of pipes and filters
Layered systems
Collection of abstract layers interacting according to
certain rules
Filter can internally be decomposed in
Another pipe and filter system
Instance of something else
system
Pipe may be used for any data transmission
16
1.12.2011
Abstraction
Allows to describe the abstract roles of elements and
properties
high-level pgm languages, register usage suppressed,
17
Abstraction, 2
Necessary to represent new architectural patterns
structure
Distinct roles of each element in the high-level
structure are clear
Example: client-server relationship
18
1.12.2011
Reusability
Reuse components, connectors, architectural styles in
elements
Structural and semantic constraints
Differs with respect to reusing components from libraries
Those are completely closed / parameterized components, retain
1.12.2011
Reusability, 2
Systems rarely conceived in isolation
Instances of a family of similar systems that share
20
1.12.2011
Configuration
Architectural descriptions should localize the
structure
Without examining individual components
ADL: should separate descriptions of compositions from
those of elements
Reason about composition as a whole
21
1.12.2011
Heterogeneity
Combine multiple, heterogeneous architectural
descriptions
Ability to combine different architectural styles in a
single system
Component A communicates with component B via a pipe, but
languages
Architectural description is at a higher level of abstraction than
1.12.2011
Analysis
Possible to perform rich and varied analyses
of architectural descriptions
Each style facilitates a certain type of properties
Pipe and filter: possible to analyze throughput, investigate
deadlock and resource usage, deduce the system I/O
behavior from that of the filters
Should be possible to tailor special purpose analysis tools
to architecture types
Automated and non-automated reasoning about
architectural descriptions
23
1.12.2011
Analysis, 2
Important for architectural formalisms
Many of the interesting architectural properties are
dynamic
Exp
If connector associated with protocol, is the use of connector
will be enough
Should be possible to associate specifications with
24
First-class connectors
SA treats SW systems as composition of
components
Focus on components
Description of interactions among components is
25
1.12.2011
specification
5. Poor support for components with
incompatible packaging
6. Poor support for multi-language or multiparadigm systems
7. Poor support for legacy systems
26
1.12.2011
components
Establish rules that govern component interaction
Specify any auxiliary mechanisms required
Do not correspond to compilation units
27
1.12.2011
Connectors
Manifest as
Table entries
Instructions to a linker
Dynamic data structures
System calls
Initialization parameters
Servers with multiple independent connections
Define a set of roles that specific named
28
1.12.2011
Connectors, 2
Place of relations among components
Mediate interactions
Have protocol specifications defining their properties
Rules about types of interfaces they are able to mediate for
Assurances about properties of interactions
Rules about order in which things happen
Commitments about interaction (ordering, performance, etc)
Are of some type/subtype
Roles to be satisfied: specific, visible named entities
29
1.12.2011
Components
Place of computation and state
Have interfaces specifying their properties
Signatures
Functionality of resources
Global relations
Performance properties
30
1.12.2011
language
Composite components define configurations in
independent notation
Constituent components and connectors identified
Match connection points of components with roles
of connectors
Check integrity of the above
31
1.12.2011
Primitive vs composite:
connectors
Of different kinds
32
1.12.2011
Primitive connectors
Built-in mechanisms of programming languages
System functions of the OS
Shared data
Entries in task/routing tables
Interchange formats for static data
Initialization parameters
etc
33
1.12.2011
data structures
Must support
System configuration
Independence of entities (reusability)
Abstraction
Analysis of functional properties and QA
1.12.2011
35
Component
Connector
Interface
Component type
Player
Implementation
Protocol
Connector type
Role
Implementation
1.12.2011
On ADL structure
Specify whether element primitive
Not further defined at architectural level, but
36
1.12.2011
Architecture Description
Languages
The positives
ADLs provide a formal way of representing architecture
ADLs are intended to be both human and machine readable
ADLs support describing a system at a higher level than previously
possible
ADLs permit analysis of architectures completeness, consistency,
ambiguity, and performance
ADLs can support automatic generation of software systems
The negatives
There is no universal agreement on what ADLs should represent,
particularly wrt the behavior of the architecture
Representations currently in use are relatively difficult to parse and
are not supported by commercial tools
Most ADL work today has been undertaken with academic rather than
commercial goals in mind
Most ADLs tend to be very vertically optimized toward a particular
kind of analysis
37
1.12.2011
38
1.12.2011
ADLs
Leading candidates
ACME (CMU/USC)
Rapide (Stanford)
Wright (CMU)
Unicon (CMU)
Secondary candidates
Aesop (CMU)
MetaH (Honeywell)
C2 SADL (UCI)
SADL (SRI)
Others
Lileanna
UML
Modechart
39
1.12.2011
ACME
Acme was developed jointly by Monroe, Garlan (CMU) and Wile
(USC)
Acme is a general purpose ADL originally designed to be a lowest
common denominator interchange language
Now
common interchange format for architecture design tools
foundation for developing new architectural design and analysis tools
simple architectural descriptions
40
1.12.2011
rpc
client
send-request
41
caller
callee
server
receive-request
1.12.2011
Rapide
Developed by David Luckham, Stanford
General purpose ADL designed with an emphasis on simulation
42
1.12.2011
43
language
Defines and simulates behavior of distributed object
system architectures
Produces a simulation represented by a set of events
(poset)
Events are ordered with respect to time and
causality
System requirements are expressed as constraints on
time and concurrent patterns of events
Posets enable visualization and analysis of an
execution
1.12.2011
Architecture
connections
constraints
Components
interface
interface
Component
architecture
interface
module
44
1.12.2011
1.12.2011
Interface
Components
action part
in actions
out actions
service part
state
Components
behavior
part
state transitions
constraint part
pattern constraints
Components
private part
46
functions
objects
types
interface with no
private part
1.12.2011
1.12.2011
Wright
Developed by David Garlan at CMU
Wright is a general purpose ADL designed with an emphasis on
1.12.2011
UML as an ADL
The Positive
lowers entry barrier, mainstreams modeling, tools
50
1.12.2011
Hence
There is a rich body of research to draw upon
Much has been learned about representing and
analyzing architectures
Effort is needed now to bring together the
common knowledge and put it into practice
51
1.12.2011
52
http://www.cs.cmu.edu/afs/cs/project/able/www/wright/index.html
Aesop:
http://www.cs.cmu.edu/afs/cs/project/able/www/aesop/aesop_ho
me.html
Unicon:
http://www.cs.cmu.edu/afs/cs/project/vit/www/unicon/index.html
C2 SADL: http://www.ics.uci.edu/pub/arch/
SSEP: http://www.mcc.com/projects/ssepp
ADML: http://www.mcc.com/projects/ssepp/adml
1.12.2011
Formalisms
Formal models and techniques are
53
1.12.2011
What to formalize?
Architecture of a specific system
Allow the architect to plan a specific system
Becomes part of the specification of the system
Augments the informal characteristics of the SA
Permits specific analyses of the system
54
1.12.2011
What to formalize?
Architectural style
Describe architectural abstractions for families of
systems
Purposes:
Make common idioms, patterns and reference architectures
precise
Show precisely how different architectural representations
can be treated as specializations of some common
abstraction
55
1.12.2011
What to formalize
Theory of software architecture
Clarify the meaning of generic architectural
concepts
Architectural connection, hierarchical architectural
architectural level
Might provide rules for determining when an architectural
56
1.12.2011
What to formalize
Formal semantics of ADL:s
Architectural description is a language issue
Apply traditional techniques for representing
semantics of languages
57
1.12.2011
Todays takeaway
SA has a linguistic character
Programming languages are useful for
comparison
Connectors are needed in addition to
components
ADLs may grow in the future
58
1.12.2011