SlideShare a Scribd company logo
Software Architecture
New wine in old bottles?
(i.e., software architecture ≅ global design?,
architect ≅ designer)
SE, Software Engg., Prabhat Gangwar, ©2008 2
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 3
The Role of the Architect
client,
users
architect developers
appearance,
behaviour
construction,
co-operation
architectural
design
visualises prescribes
requirements solutions
createsassess assess
SE, Software Engg., Prabhat Gangwar, ©2008 4
Pre-architecture life cycle
requirements
agreement
quality
development
stakeholders
(few)
SE, Software Engg., Prabhat Gangwar, ©2008 5
Characteristics
 Iteration mainly on functional requirements
 Few stakeholders involved
 No balancing of functional and quality
requirements
SE, Software Engg., Prabhat Gangwar, ©2008 6
Adding architecture, the easy way
architecture
detailed design
implementation
requirements
agreement
quality
development
stakeholders
(few)
SE, Software Engg., Prabhat Gangwar, ©2008 7
Architecture in the life cycle
requirements
architecture
quality
agreement
stakeholders
(many)
development
SE, Software Engg., Prabhat Gangwar, ©2008 8
Characteristics
 Iteration on both functional and quality
requirements
 Many stakeholders involved
 Balancing of functional and quality requirements
SE, Software Engg., Prabhat Gangwar, ©2008 9
Why Is Architecture Important?
 Architecture is the vehicle for stakeholder
communication
 Architecture manifests the earliest set of design
decisions
 Constraints on implementation
 Dictates organizational structure
 Inhibits or enable quality attributes
 Architecture is a transferable abstraction of a
system
 Product lines share a common architecture
 Allows for template-based development
 Basis for training
SE, Software Engg., Prabhat Gangwar, ©2008 10
Where did it start?
 1992: Perry & Wolf
 1987: J.A. Zachman; 1989: M. Shaw
 1978/79: David parnas, program families
 1972 (1969): Edsger Dijkstra, program families
 1969: I.P. Sharp @ NATO Software Engineering
conference:
“I think we have something in addition to software
engineering [..] This is the subject of software
architecture. Architecture is different from
engineering.”
SE, Software Engg., Prabhat Gangwar, ©2008 11
Software architecture, definition (1)
The architecture of a software system defines that
system in terms of computational components
and interactions among those components.
(from Shaw and Garlan, Software Architecture,
Perspectives on an Emerging Discipline, Prentice-
Hall, 1996.)
SE, Software Engg., Prabhat Gangwar, ©2008 12
Software Architecture
statement
⇓
procedure
⇓
module
⇓
(design) pattern
⇓
architecture
SE, Software Engg., Prabhat Gangwar, ©2008 13
Software Architecture, definition (2)
The software architecture of a system is the
structure or structures of the system, which
comprise software elements, the externally visible
properties of those elements, and the
relationships among them.
(from Bass, Clements, and Kazman, Software
Architecture in Practice, SEI Series in Software
Engineering. Addison-Wesley, 2003.)
SE, Software Engg., Prabhat Gangwar, ©2008 14
Software Architecture
 Important issues raised in this definition:
 multiple system structures;
 externally visible (observable) properties of components.
 The definition does not include:
 the process;
 rules and guidelines;
 architectural styles.
SE, Software Engg., Prabhat Gangwar, ©2008 15
Architectural Structures
 module structure
 conceptual, or logical structure
 process, or coordination structure
 physical structure
 uses structure
 calls structure
 data flow
 control flow
 class structure
SE, Software Engg., Prabhat Gangwar, ©2008 16
Software Architecture, definition (3)
Architecture is the fundamental organization of a
system embodied in its components, their
relationships to each other and to the
environment and the principles guiding its design
and evolution
(from IEEE Standard on the Recommended
Practice for Architectural Descriptions, 2000.)
SE, Software Engg., Prabhat Gangwar, ©2008 17
Software Architecture
 Architecture is conceptual.
 Architecture is about fundamental things.
 Architecture exists in some context.
SE, Software Engg., Prabhat Gangwar, ©2008 18
Other points of view
 Architecture is high-level design
 Architecture is overall structure of the system
 Architecture is the structure, including the
principles and guidelines governing their design
and evolution over time
 Architecture is components and connectors
SE, Software Engg., Prabhat Gangwar, ©2008 19
Software Architecture & Quality
 The notion of quality is central in software
architecting: a software architecture is devised to
gain insight in the qualities of a system at the
earliest possible stage.
 Some qualities are observable via execution:
performance, security, availability, functionality,
usability
 And some are not observable via execution:
modifiability, portability, reusability, integrability,
testability
SE, Software Engg., Prabhat Gangwar, ©2008 20
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 21
Attribute-Driven Design (Bass et al, Ch 7)
 Choose module to decompose
 Refine this module:
 choose architectural drivers (quality is driving force)
 choose pattern that satisfies drivers
 apply pattern
 Repeat steps
SE, Software Engg., Prabhat Gangwar, ©2008 22
Example ADD iterations
 Top-level: usability ⇒ separate user interface ⇒
Seeheim/three tier architecture
 Lower-level, within user interface: security ⇒
authenticate users
 Lower-level, within data layer: availability ⇒
active redundancy
SE, Software Engg., Prabhat Gangwar, ©2008 23
Generalized model
 Understand problem
 Solve it
 Evaluate solution
SE, Software Engg., Prabhat Gangwar, ©2008 24
Global workflow in architecture design
context
requirements
evaluation
results
architecture
backlog
synthesis
evaluation
SE, Software Engg., Prabhat Gangwar, ©2008 25
Generalized model (cont’d)
backlog
sign.reqs
constraints
ideas
assets
architecture
eval results
synthesis
evaluation
SE, Software Engg., Prabhat Gangwar, ©2008 26
Design issues, options and decisions
A designer is faced with a series of design issues
 These are sub-problems of the overall design problem.
 Each issue normally has several alternative solutions (or
design options)
 The designer makes a design decision to resolve each issue.
 This process involves choosing the best option from
among the alternatives.
SE, Software Engg., Prabhat Gangwar, ©2008 27
Taking decisions
Design
problem
sub-
proble
m
(or
issue)
sub-
proble
m
(or
issue)
Design
option
Desig
n
option
Desig
n
option
Desig
n
option
Problem
space
Decision
space
Alternative
solutions
Alternative
solutions
Decision =
best option
Decision =
best option
SE, Software Engg., Prabhat Gangwar, ©2008 28
Decision space
The space of possible designs that can be achieved
by choosing different sets of alternatives.
client-server
monolithic
fat-client
thin-client
client in a
separate
user interface
layer
no separate
user interface
layer
Programmed in Java
Programmed in Visual Basic
Programmed in C++
client
style
SE, Software Engg., Prabhat Gangwar, ©2008 29
Tree or graph?
 Issues and options are not independent ...
client-server
monolithic
fat-client
thin-client
client in a
separate
user interface
layer
no separate
user interface
layer
client
style
flexibility
layered MVC
SE, Software Engg., Prabhat Gangwar, ©2008 30
More than just IT
 Technical and non-techical issues and options are
intertwined
 Architects deciding on the type of database
versus
 Management deciding on new strategic partnership
or
 Management deciding on budget
SE, Software Engg., Prabhat Gangwar, ©2008 31
Some (tacit) decisions are related to norms
and values
SE, Software Engg., Prabhat Gangwar, ©2008 32
Types of decisions
 Implicit, undocumented
 Unaware, tacit, of course knowledge
 Explicit, undocumented
 Vaporizes over time
 Explicit, explicitly undocumented
 Tactical, personal reasons
 Explicit, documented
 Preferred, exceptional situation
SE, Software Engg., Prabhat Gangwar, ©2008 33
Why is documenting design decisions
important?
 Prevents repeating (expensive) past steps
 Explains why this is a good architecture
 Emphasizes qualities and criticality for
requirements/goals
 Provides context and background
SE, Software Engg., Prabhat Gangwar, ©2008 34
Uses of design decisions
 Identify key decisions for a stakeholder
 Make the key decisions quickly available. E.g., introducing
new people and make them up2date.
 ..., Get a rationale, Validate decisions against reqs
 Evaluate impact
 If we want to change an element, what are the elements
impacted (decisions, design, issues)?
 ..., Cleanup the architecture, identify important architectural
drivers
SE, Software Engg., Prabhat Gangwar, ©2008 35
Elements of a design decision
Issues: design issues being addressed
Decision
Status: e.g., pending, approved
Assumptions: underlying assumptions
Alternatives
Rationale; the why of the decision taken
Implications: e.g. need for further decisions
SE, Software Engg., Prabhat Gangwar, ©2008 36
Pointers on design decisions
 Hofmeister et al, Generalizing a Model of Software
Architecture Design from Five Industrial Approaches,
Journal of Systems and Software, 2007
 Tyree and Ackerman, Architecture decisions: demystifying
architecture, IEEE Software, vol. 22(2), 2005.
 Kruchten, Lago and van Vliet, Building up and exploiting
architectural knowledge, WICSA, 2005.
 Lago and van Vliet, Explicit assumptions enrich
architectural models, ICSE, 2005.
SE, Software Engg., Prabhat Gangwar, ©2008 37
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 38
Software design in UML
 Class diagrams, state diagrams, sequence
diagram, etc
 Who can read those diagrams?
 Which type of questions do they answer?
 Do they provide enough information?
SE, Software Engg., Prabhat Gangwar, ©2008 39
Who can read those diagrams?
 Designer, programmer, tester, maintainer, etc.
 Client?
 User?
SE, Software Engg., Prabhat Gangwar, ©2008 40
Which type of questions do they answer?
 How much will it cost?
 How secure will the system be?
 Will it perform?
 How about maintenance cost?
 What if requirement A is replaced by requirement
B?
SE, Software Engg., Prabhat Gangwar, ©2008 41
Analogy with building architecture
 Overall picture of building (client)
 Front view (client, “beauty” committee)
 Separate picture for water supply (plumber)
 Separate picture for electrical wiring (electrician)
 etc
SE, Software Engg., Prabhat Gangwar, ©2008 42
Architecture presentations in practice
 By and large two flavors:
 Powerpoint slides – for managers, users, consultants, etc
 UML diagrams, for technicians
 A small sample …
SE, Software Engg., Prabhat Gangwar, ©2008 43
SE, Software Engg., Prabhat Gangwar, ©2008 44
SE, Software Engg., Prabhat Gangwar, ©2008 45
SE, Software Engg., Prabhat Gangwar, ©2008 46
SE, Software Engg., Prabhat Gangwar, ©2008 47
SE, Software Engg., Prabhat Gangwar, ©2008 48
So, …
 Different representations
 For different people
 For different purposes
 These representations are both descriptive and
prescriptive
SE, Software Engg., Prabhat Gangwar, ©2008 49
IEEE model for architectural descriptions
Mission
Sy stemEnv ironment Architecture
Rationale
Architecture
Description
Concern
Library
Viewpoint
Viewpoint
Stakeholder
Model
View
Mission
Sy stemEnv ironment Architecture
Rationale
Architecture
Description
Concern
Library
Viewpoint
Viewpoint
Stakeholder
Model
View
SE, Software Engg., Prabhat Gangwar, ©2008 50
Some terms (from IEEE standard)
 System stakeholder: an individual, team, or
organization (or classes hereof) with interests in,
or concerns relative to, a system.
 View: a representation of a whole system from the
perspective of a related set of concerns.
 Viewpoint: A viewpoint establishes the purposes
and audience for a view and the techniques or
methods employed in constructing a view.
SE, Software Engg., Prabhat Gangwar, ©2008 51
Stakeholders
 Architect
 Requirements engineer
 Designer (also of other systems)
 Implementor
 Tester, integrator
 Maintainer
 Manager
 Quality assurance people
SE, Software Engg., Prabhat Gangwar, ©2008 52
Viewpoint specification
 Viewpoint name
 Stakeholders addressed
 Concerns addressed
 Language, modeling techniques
SE, Software Engg., Prabhat Gangwar, ©2008 53
Kruchten’s 4+1 view model
Logical
Viewpoint
Implementation
Viewpoint
Process
Viewpoint
Deployment
Viewpoint
Scenarios
End-user
Functionality
Programmers
Software management
Integrators
Performance
Scalability
System engineers
Topology
Communications
SE, Software Engg., Prabhat Gangwar, ©2008 54
4 + 1: Logical Viewpoint
 The logical viewpoint supports the functional
requirements, i.e., the services the system should
provide to its end users.
 Typically, it shows the key abstractions (e.g.,
classes and interactions amongst them).
SE, Software Engg., Prabhat Gangwar, ©2008 55
4 + 1: Process Viewpoint
 Addresses concurrent aspects at runtime (tasks,
threads, processes and their interactions)
 It takes into account some nonfunctional
requirements, such as performance, system
availability, concurrency and distribution, system
integrity, and fault-tolerance.
SE, Software Engg., Prabhat Gangwar, ©2008 56
4 + 1: Deployment Viewpoint
 The deployment viewpoint defines how the
various elements identified in the logical, process,
and implementation viewpoints-networks,
processes, tasks, and objects-must be mapped
onto the various nodes.
 It takes into account the system's nonfunctional
requirements such as system availability,
reliability (fault-tolerance), performance
(throughput), and scalability.
SE, Software Engg., Prabhat Gangwar, ©2008 57
4 + 1: Implementation Viewpoint
 The imlementation viewpoint focuses on the
organization of the actual software modules in the
software-development environment.
 The software is packaged in small chunks-
program libraries or subsystems-that can be
developed by one or more developers.
SE, Software Engg., Prabhat Gangwar, ©2008 58
4 + 1: Scenario Viewpoint
 The scenario viewpoint consists of a small subset
of important scenarios (e.g., use cases) to show
that the elements of the four viewpoints work
together seamlessly.
 This viewpoint is redundant with the other ones
(hence the "+1"), but it plays two critical roles:
 it acts as a driver to help designers discover architectural elements
during the architecture design;
 it validates and illustrates the architecture design, both on paper and
as the starting point for the tests of an architectural prototype.
SE, Software Engg., Prabhat Gangwar, ©2008 59
Architectural views from Bass et al
(view = representation of a structure)
 Module views
 Module is unit of implementation
 Decomposition, uses, layered, class
 Component and connector (C & C) views
 These are runtime elements
 Process (communication), concurrency, shared data (repository),
client-server
 Allocation views
 Relationship between software elements and environment
 Work assignment, deployment, implementation
SE, Software Engg., Prabhat Gangwar, ©2008 60
Module views
 Decomposition: units are related by “is a
submodule of”, larger modules are composed of
smaller ones
 Uses: relation is “uses” (calls, passes information
to, etc). Important for modifiability
 Layered is special case of uses, layer n can only
use modules from layers <n
 Class: generalization, relation “inherits from”
SE, Software Engg., Prabhat Gangwar, ©2008 61
Component and connector views
 Process: units are processes, connected by
communication or synchronization
 Concurrency: to determine opportunities for
parallelism (connector = logical thread)
 Shared data: shows how data is produced and
consumed
 Client-server: cooperating clients and servers
SE, Software Engg., Prabhat Gangwar, ©2008 62
Allocation views
 Deployment: how software is assigned to
hardware elements
 Implementation: how software is mapped onto file
structures
 Work assignment: who is doing what
SE, Software Engg., Prabhat Gangwar, ©2008 63
How to decide on which viewpoints
 What are the stakeholders and their concerns?
 Which viewpoints address these concerns?
 Prioritize and possibly combine viewpoints
SE, Software Engg., Prabhat Gangwar, ©2008 64
Decision visualization
SE, Software Engg., Prabhat Gangwar, ©2008 65
Business
viewpoint
SE, Software Engg., Prabhat Gangwar, ©2008 66
A caveat on quality
 A view can be used to assess one or more quality
attributes
 E.g., some type of module view can be used to
assess modifiability
 It should then expose the design decisions that
affect this quality attribute
SE, Software Engg., Prabhat Gangwar, ©2008 67
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 68
Architectural styles
 An architectural style is a description of
component and connector types and a pattern of
their runtime control and/or data transfer.
 Examples:
 main program with subroutines
 data abstraction
 implicit invocation
 pipes and filters
 repository (blackboard)
 layers of abstraction
SE, Software Engg., Prabhat Gangwar, ©2008 69
Alexander’s patterns
 There is abundance evidence to show that high buildings
make people crazy.
 High buildings have no genuine advantage, except in
speculative gains. They are not cheaper, they do not help to
create open space, they make life difficult for children, they
wreck the open spaces near them. But quite apart from this,
empirical evidence shows that they can actually damage
people’s minds and feelings.
 In any urban area, keep the majority of buildings four stories
high or less. It is possible that certain buildings should
exceed this limit, but they should never be buildings for
human habitation.
SE, Software Engg., Prabhat Gangwar, ©2008 70
General flavor of a pattern
 IF you find yourself in <context>, for example
<examples>, with <problem>
 THEN for some <reasons>, apply <pattern> to
construct a solution leading to a <new context>
and <other patterns>
SE, Software Engg., Prabhat Gangwar, ©2008 71
Components and Connectors
 Components are connected by connectors.
 They are the building blocks with which an
architecture can be described.
 No standard notation has emerged yet.
SE, Software Engg., Prabhat Gangwar, ©2008 72
Types of components
 computational: does a computation of some sort.
E.g. function, filter.
 memory: maintains a collection of persistent data.
E.g. data base, file system, symbol table.
 manager: contains state + operations. State is
retained between invocations of operations. E.g.
adt, server.
 controller: governs time sequence of events. E.g.
control module, scheduler.
SE, Software Engg., Prabhat Gangwar, ©2008 73
Types of connectors
 procedure call (including RPC)
 data flow (e.g. pipes)
 implicit invocation
 message passing
 shared data (e.g. blackboard or shared data base)
 instantiation
SE, Software Engg., Prabhat Gangwar, ©2008 74
Framework for describing architectural
styles
 problem: type of problem that the style addresses.
Characteristics of the reqs’s guide the designer in
his choice for a particular style.
 context: characteristics of the environment that
constrain the designer, req’s imposed by the
style.
 solution: in terms of components and connectors
(choice not independent), and control structure
(order of execution of components)
 variants
 examples
SE, Software Engg., Prabhat Gangwar, ©2008 75
Main-program-with-subroutines style
problem: hierarchy of functions; result of functional
decomposition, single thread of control
context: language with nested procedures
solution:
 system model: modules in a hierarchy, may be weak or strong,
coupling/cohesion arguments
 components: modules with local data, as well as global data
 connectors: procedure call
 control structure: single thread, centralized control: main program
pulls the strings
variants: OO versus non-OO
SE, Software Engg., Prabhat Gangwar, ©2008 76
Abstract-data-type style
problem: identify and protect related bodies of information.
Data representations likely to change.
context: OO-methods which guide the design, OO-languages
which provide the class-concept
solution:
 system model: component has its own local data (= secret it hides)
 components: managers (servers, objects, adt’s)
 connectors: procedure call (message)
 control structure: single thread, usually; control is decentralized
variants: caused by language facilities
SE, Software Engg., Prabhat Gangwar, ©2008 77
Implicit-invocation style
 problem: loosely coupled collection of components. Useful
for applications which must be reconfigurable.
 context: requires event handler, through OS or language.
 solution:
 system model: independent, reactive processes, invoked when an
event is raised
 components: processes that signal events and react to events
 connectors: automatic invocation
 control structure: decentralized control. Components do not know
who is going to react.
 variants: Tool-integration frameworks, and languages with
special features.
SE, Software Engg., Prabhat Gangwar, ©2008 78
Pipes-and-filters style
 problem: independent, sequential transformations on
ordered data. Usually incremental, Ascii pipes.
 context: series of incremental transformations. OS-
functions transfer data between processes. Error-handling
difficult.
 solution:
 system model: continuous data flow; components incrementally
transform data
 components: filters for local processing
 connectors: data streams (usually plain ASCII)
 control structure: data flow between components; component has
own flow
 variants: From pure filters with little internal state to batch
processes
SE, Software Engg., Prabhat Gangwar, ©2008 79
Repository style
problem: manage richly structured information, to be
manipulated in many different ways. Data is long-lived.
context: shared data to be acted upon by multiple clients
solution:
system model: centralized body of information. Independent
computational elements.
components: one memory, many computational
connectors: direct access or procedure call
control structure: varies, may depend on input or state of computation
variants: traditional data base systems, compilers, blackboard
systems
Shared
Data
Client
Client
Client
SE, Software Engg., Prabhat Gangwar, ©2008 80
Layered style
problem: distinct, hierarchical classes of services.
“Concentric circles” of functionality
context: a large system that requires decomposition (e.g.,
virtual machines, OSI model)
solution:
 system model: hierarchy of layers, often limited visibility
 components: collections of procedures (module)
 connectors: (limited) procedure calls
 control structure: single or multiple threads
variants: relaxed layering
Layern
Layer2
Layer1
SE, Software Engg., Prabhat Gangwar, ©2008 81
Model-View-Controller (MVC) style
problem: separation of UI from application is desirable due to
expected UI adaptations
context: interactive applications with a flexible UI
solution:
 system model: UI (View and Controller Component(s)) is decoupled
from the application (Model component)
 components: collections of procedures (module)
 connectors: procedure calls
 control structure: single thread
variants: Document-View
Model
ViewController
nn
SE, Software Engg., Prabhat Gangwar, ©2008 82
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 83
Architecture evaluation/analysis
 Assess whether architecture meets certain quality
goals, such as those w.r.t. maintainability,
modifiability, reliability, performance
 Mind: the architecture is assessed, while we hope
the results will hold for a system yet to be built
SE, Software Engg., Prabhat Gangwar, ©2008 84
Software Architecture Analysis
Software
architecture
System
Properties Qualities
implementation
properties
SE, Software Engg., Prabhat Gangwar, ©2008 85
Analysis techniques
 Questioning techniques: how does the system
react to various situations; often make use of
scenarios
 Measuring techniques: rely on quantitative
measures; architecture metrics, simulation, etc
SE, Software Engg., Prabhat Gangwar, ©2008 86
Scenarios in Architecture Analysis
 Different types of scenarios, e.g. use-cases, likely
changes, stress situations, risks, far-into-the-
future scenarios
 Which stakeholders to ask for scenarios?
 When do you have enough scenarios?
SE, Software Engg., Prabhat Gangwar, ©2008 87
Preconditions for successful assessment
 Clear goals and requirements for the architecture
 Controlled scope
 Cost-effectiveness
 Key personnel availability
 Competent evaluation team
 Managed expectations
SE, Software Engg., Prabhat Gangwar, ©2008 88
Architecture Tradeoff Analysis Method
(ATAM)
 Reveals how well architecture satisfies quality
goals, how well quality attributes interact, i.e. how
they trade off
 Elicits business goals for system and its
architecture
 Uses those goals and stakeholder participation to
focus attention to key portions of the architecture
SE, Software Engg., Prabhat Gangwar, ©2008 89
Benefits
 Financial gains
 Forced preparation
 Captured rationale
 Early detection of problems
 Validation of requirements
 Improved architecture
SE, Software Engg., Prabhat Gangwar, ©2008 90
Participants in ATAM
 Evaluation team
 Decision makers
 Architecture stakeholders
SE, Software Engg., Prabhat Gangwar, ©2008 91
Phases in ATAM
0: partnership, preparation (informally)
1: evaluation (evaluation team + decision makers,
one day)
2: evaluation (evaluation team + decision makers +
stakeholders, two days)
3: follow up (evaluation team + client)
SE, Software Engg., Prabhat Gangwar, ©2008 92
Steps in ATAM (phase 1 and 2)
 Present method
 Present business drivers (by project manager of system)
 Present architecture (by lead architect)
 Identify architectural approaches/styles
 Generate quality attribute utility tree (+ priority, and how
difficult)
 Analyze architectural approaches
 Brainstorm and prioritize scenarios
 Analyze architectural approaches
 Present results
SE, Software Engg., Prabhat Gangwar, ©2008 93
Example Utility tree
Utility
Performance
Usability
Maintainability
Transaction response time (H, M)
Throughput
Training
150 transactions/sec
Database vendor releases
new version
Normal operations
SE, Software Engg., Prabhat Gangwar, ©2008 94
Outputs of ATAM
 Concise presentation of the architecture
 Articulation of business goals
 Quality requirements expressed as set of
scenarios
 Mapping of architectural decisions to quality
requirements
 Set of sensitivity points and tradeoff points
 Set of risks, nonrisks, risk themes
SE, Software Engg., Prabhat Gangwar, ©2008 95
Important concepts in ATAM
 Sensitivity point: decision/property critical for
certain quality attribute
 Tradeoff point: decision/property that affects
more than one quality attribute
 Risk: decision/property that is a potential problem
 These concepts are overlapping
SE, Software Engg., Prabhat Gangwar, ©2008 96
Software Architecture Analysis Method
(SAAM)
 Develop scenarios for
 kinds of activities the system must support
 kinds of changes anticipated
 Describe architecture(s)
 Classify scenarios
 direct -- use requires no change
 indirect -- use requires change
 Evaluate indirect scenarios: changes and cost
 Reveal scenario interaction
 Overall evaluation
SE, Software Engg., Prabhat Gangwar, ©2008 97
Scenario interaction in SAAM
 Two (indirect) scenarios interact if they require
changes to the same component
 Scenario interaction is important for two reasons:
 Exposes allocation of functionality to the design
 Architecture might not be at right level of detail
SE, Software Engg., Prabhat Gangwar, ©2008 98
Overview
 What is it, why bother?
 Architecture Design
 Viewpoints and view models
 Architectural styles
 Architecture asssessment
 Role of the software architect
SE, Software Engg., Prabhat Gangwar, ©2008 99
Role of the software architect
 Key technical consultant
 Make decisions
 Coach of development team
 Coordinate design
 Implement key parts
 Advocate software architecture
SE, Software Engg., Prabhat Gangwar, ©2008 100
Summary
 new and immature field
 proliferation of terms: architecture - design
pattern - framework - idiom
 architectural styles and design pattern describe
(how are things done) as well as prescribe (how
should things be done)
 stakeholder communication
 early evaluation of a design
 transferable abstraction
SE, Software Engg., Prabhat Gangwar, ©2008 101
Further reading
 Mary Shaw and David Garlan, Software Architecture;
Perspectives of an Emerging Discipline, 1995.
 Philippe B. Kruchten, The 4+1 view model of architecture,
IEEE Software, 12(6):42-50, November 1995.
 Frank Buschmann et al., Pattern-Oriented Software
Architecture: A System of Patterns, 1996. Part II: 2001.
 Erich Gamma et al., Design Patterns: Elements of Reusable
Object-Oriented Software, 1995.
 Len Bass et al, Sofware Architecture in Practice, 2003 (2nd
edition).
 C. Hofmeister et al., Applied Software Architecture, 1999.
 Jan Bosch, Design & Use of Software Architectures, 2000.

More Related Content

PPT
Software architecture
PPTX
Software Architecture
PPT
Architecture design in software engineering
PDF
requirement gathering
PPTX
Technology Management: Technology Roadmapping
PPTX
unit 5 Architectural design
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Software architecture
Software Architecture
Architecture design in software engineering
requirement gathering
Technology Management: Technology Roadmapping
unit 5 Architectural design
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...

What's hot (20)

PDF
An Introduction to Software Architecture
PPTX
Ch22-Software Engineering 9
PDF
Introduction to SOFTWARE ARCHITECTURE
PPTX
requirement documentation
PPT
Software Quality Management
PDF
Requirements Engineering
PPT
Software quality assurance lecture 1
PPTX
Software process
PPTX
Software Architecture Patterns
PPT
Software design
PDF
Stepwise Project planning in software development
PPTX
Software Evolution
PPTX
software development life cycle(SDLC)
PPT
Software Engineering (Introduction to Software Engineering)
PPTX
Software Architecture vs design
PPTX
Ch2-Software Engineering 9
PPTX
Architecture Design
PDF
Requirement engineering process
PPT
System Models in Software Engineering SE7
PDF
software architecture
An Introduction to Software Architecture
Ch22-Software Engineering 9
Introduction to SOFTWARE ARCHITECTURE
requirement documentation
Software Quality Management
Requirements Engineering
Software quality assurance lecture 1
Software process
Software Architecture Patterns
Software design
Stepwise Project planning in software development
Software Evolution
software development life cycle(SDLC)
Software Engineering (Introduction to Software Engineering)
Software Architecture vs design
Ch2-Software Engineering 9
Architecture Design
Requirement engineering process
System Models in Software Engineering SE7
software architecture
Ad

Viewers also liked (20)

PPT
Mule and web services
PPT
My sql advacnce topics
PPT
Leadership
PPTX
Add to the path on mac os x
PDF
Grindrod Overview 2015
PPT
Global warming
PPT
PDF
L06 Architecting Activities
PPT
Sa 009 add
PDF
Model-Driven Architecture for Cloud Applications Development, A survey
PDF
Risk Centric Architecture George Fairbanks
PDF
I mindsx4howest v2
PDF
Attribute Driven Styles: The Good, the Bad, and the Unknown (SassConf 2015 Di...
PDF
Software Design - Architectural Kata
PPT
Quality Attributes Workshop
PPT
Sa 008 patterns
DOCX
Designing and documenting software architecture unit 5
PPTX
Software architecture quality attributes & Trade-offs
PPTX
Quality attributes in software architecture
Mule and web services
My sql advacnce topics
Leadership
Add to the path on mac os x
Grindrod Overview 2015
Global warming
L06 Architecting Activities
Sa 009 add
Model-Driven Architecture for Cloud Applications Development, A survey
Risk Centric Architecture George Fairbanks
I mindsx4howest v2
Attribute Driven Styles: The Good, the Bad, and the Unknown (SassConf 2015 Di...
Software Design - Architectural Kata
Quality Attributes Workshop
Sa 008 patterns
Designing and documenting software architecture unit 5
Software architecture quality attributes & Trade-offs
Quality attributes in software architecture
Ad

Similar to Software Architecture (20)

PDF
Chapter 2 software development life cycle models
PDF
Chapter 5 software design
PDF
40 fucking characters are you fucking crazy I hate this site just let me down...
PDF
UNIT 1 B BSE1010 Software Process Models.pdf
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
Appendix A: Introduction to Collaborative Lifecycle Management
PPT
02 architectures in_context
PPT
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
PPTX
SDA 01.pptx
PDF
Computer Aided Software Engineering (CASE).pdf
PPT
01 the big_idea
PDF
Chapter 6 software metrics
PDF
Software engineering lecture notes
PPT
Chapter1
PPTX
SA_UNIT_1.pptx
PDF
Lecture-2-Architectural_Concepts.pdf
PPT
Software Engineering Fundamentals - Svetlin Nakov
PPT
Software Engineering Fundamentals Svetlin Nakov
PPT
Reference Architecture
Chapter 2 software development life cycle models
Chapter 5 software design
40 fucking characters are you fucking crazy I hate this site just let me down...
UNIT 1 B BSE1010 Software Process Models.pdf
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
Appendix A: Introduction to Collaborative Lifecycle Management
02 architectures in_context
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
SDA 01.pptx
Computer Aided Software Engineering (CASE).pdf
01 the big_idea
Chapter 6 software metrics
Software engineering lecture notes
Chapter1
SA_UNIT_1.pptx
Lecture-2-Architectural_Concepts.pdf
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals Svetlin Nakov
Reference Architecture

More from Prabhat gangwar (20)

PPT
Middleware
PDF
Pseudolocalization
PPTX
Mule anypoint studio
PPTX
Mule anypoint platform
PPT
What is cluster analysis
PPT
clustering and load balancing
PPT
Middleware systems overview and introduction
PPTX
Restful api modeling language
PPTX
Mule esb
PPTX
Mule fundamentals
PPTX
Gsm architecture
PDF
Oracle vs-mulesoft-api-manager-features
PPT
Oracle real application_cluster
PPT
Introducing adf business components
PPT
File transfer methods
PPT
Ftp tftp
PPT
Vedic mathmetics
PPT
Buissness model analysis
Middleware
Pseudolocalization
Mule anypoint studio
Mule anypoint platform
What is cluster analysis
clustering and load balancing
Middleware systems overview and introduction
Restful api modeling language
Mule esb
Mule fundamentals
Gsm architecture
Oracle vs-mulesoft-api-manager-features
Oracle real application_cluster
Introducing adf business components
File transfer methods
Ftp tftp
Vedic mathmetics
Buissness model analysis

Recently uploaded (20)

PDF
Urban Design Final Project-Site Analysis
PPT
Machine printing techniques and plangi dyeing
PDF
The Advantages of Working With a Design-Build Studio
PDF
SEVA- Fashion designing-Presentation.pdf
PPTX
6- Architecture design complete (1).pptx
PPTX
LITERATURE CASE STUDY DESIGN SEMESTER 5.pptx
PDF
Integrated-2D-and-3D-Animation-Bridging-Dimensions-for-Impactful-Storytelling...
PPTX
An introduction to AI in research and reference management
PDF
Design Thinking - Module 1 - Introduction To Design Thinking - Dr. Rohan Dasg...
PPTX
12. Community Pharmacy and How to organize it
PPTX
Media And Information Literacy for Grade 12
PDF
GREEN BUILDING MATERIALS FOR SUISTAINABLE ARCHITECTURE AND BUILDING STUDY
PPTX
Special finishes, classification and types, explanation
PPTX
YV PROFILE PROJECTS PROFILE PRES. DESIGN
PPTX
Entrepreneur intro, origin, process, method
PPT
EGWHermeneuticsffgggggggggggggggggggggggggggggggg.ppt
PDF
Phone away, tabs closed: No multitasking
PPTX
rapid fire quiz in your house is your india.pptx
PDF
Trusted Executive Protection Services in Ontario — Discreet & Professional.pdf
PDF
Skskkxiixijsjsnwkwkaksixindndndjdjdjsjjssk
Urban Design Final Project-Site Analysis
Machine printing techniques and plangi dyeing
The Advantages of Working With a Design-Build Studio
SEVA- Fashion designing-Presentation.pdf
6- Architecture design complete (1).pptx
LITERATURE CASE STUDY DESIGN SEMESTER 5.pptx
Integrated-2D-and-3D-Animation-Bridging-Dimensions-for-Impactful-Storytelling...
An introduction to AI in research and reference management
Design Thinking - Module 1 - Introduction To Design Thinking - Dr. Rohan Dasg...
12. Community Pharmacy and How to organize it
Media And Information Literacy for Grade 12
GREEN BUILDING MATERIALS FOR SUISTAINABLE ARCHITECTURE AND BUILDING STUDY
Special finishes, classification and types, explanation
YV PROFILE PROJECTS PROFILE PRES. DESIGN
Entrepreneur intro, origin, process, method
EGWHermeneuticsffgggggggggggggggggggggggggggggggg.ppt
Phone away, tabs closed: No multitasking
rapid fire quiz in your house is your india.pptx
Trusted Executive Protection Services in Ontario — Discreet & Professional.pdf
Skskkxiixijsjsnwkwkaksixindndndjdjdjsjjssk

Software Architecture

  • 1. Software Architecture New wine in old bottles? (i.e., software architecture ≅ global design?, architect ≅ designer)
  • 2. SE, Software Engg., Prabhat Gangwar, ©2008 2 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 3. SE, Software Engg., Prabhat Gangwar, ©2008 3 The Role of the Architect client, users architect developers appearance, behaviour construction, co-operation architectural design visualises prescribes requirements solutions createsassess assess
  • 4. SE, Software Engg., Prabhat Gangwar, ©2008 4 Pre-architecture life cycle requirements agreement quality development stakeholders (few)
  • 5. SE, Software Engg., Prabhat Gangwar, ©2008 5 Characteristics  Iteration mainly on functional requirements  Few stakeholders involved  No balancing of functional and quality requirements
  • 6. SE, Software Engg., Prabhat Gangwar, ©2008 6 Adding architecture, the easy way architecture detailed design implementation requirements agreement quality development stakeholders (few)
  • 7. SE, Software Engg., Prabhat Gangwar, ©2008 7 Architecture in the life cycle requirements architecture quality agreement stakeholders (many) development
  • 8. SE, Software Engg., Prabhat Gangwar, ©2008 8 Characteristics  Iteration on both functional and quality requirements  Many stakeholders involved  Balancing of functional and quality requirements
  • 9. SE, Software Engg., Prabhat Gangwar, ©2008 9 Why Is Architecture Important?  Architecture is the vehicle for stakeholder communication  Architecture manifests the earliest set of design decisions  Constraints on implementation  Dictates organizational structure  Inhibits or enable quality attributes  Architecture is a transferable abstraction of a system  Product lines share a common architecture  Allows for template-based development  Basis for training
  • 10. SE, Software Engg., Prabhat Gangwar, ©2008 10 Where did it start?  1992: Perry & Wolf  1987: J.A. Zachman; 1989: M. Shaw  1978/79: David parnas, program families  1972 (1969): Edsger Dijkstra, program families  1969: I.P. Sharp @ NATO Software Engineering conference: “I think we have something in addition to software engineering [..] This is the subject of software architecture. Architecture is different from engineering.”
  • 11. SE, Software Engg., Prabhat Gangwar, ©2008 11 Software architecture, definition (1) The architecture of a software system defines that system in terms of computational components and interactions among those components. (from Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline, Prentice- Hall, 1996.)
  • 12. SE, Software Engg., Prabhat Gangwar, ©2008 12 Software Architecture statement ⇓ procedure ⇓ module ⇓ (design) pattern ⇓ architecture
  • 13. SE, Software Engg., Prabhat Gangwar, ©2008 13 Software Architecture, definition (2) The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. (from Bass, Clements, and Kazman, Software Architecture in Practice, SEI Series in Software Engineering. Addison-Wesley, 2003.)
  • 14. SE, Software Engg., Prabhat Gangwar, ©2008 14 Software Architecture  Important issues raised in this definition:  multiple system structures;  externally visible (observable) properties of components.  The definition does not include:  the process;  rules and guidelines;  architectural styles.
  • 15. SE, Software Engg., Prabhat Gangwar, ©2008 15 Architectural Structures  module structure  conceptual, or logical structure  process, or coordination structure  physical structure  uses structure  calls structure  data flow  control flow  class structure
  • 16. SE, Software Engg., Prabhat Gangwar, ©2008 16 Software Architecture, definition (3) Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution (from IEEE Standard on the Recommended Practice for Architectural Descriptions, 2000.)
  • 17. SE, Software Engg., Prabhat Gangwar, ©2008 17 Software Architecture  Architecture is conceptual.  Architecture is about fundamental things.  Architecture exists in some context.
  • 18. SE, Software Engg., Prabhat Gangwar, ©2008 18 Other points of view  Architecture is high-level design  Architecture is overall structure of the system  Architecture is the structure, including the principles and guidelines governing their design and evolution over time  Architecture is components and connectors
  • 19. SE, Software Engg., Prabhat Gangwar, ©2008 19 Software Architecture & Quality  The notion of quality is central in software architecting: a software architecture is devised to gain insight in the qualities of a system at the earliest possible stage.  Some qualities are observable via execution: performance, security, availability, functionality, usability  And some are not observable via execution: modifiability, portability, reusability, integrability, testability
  • 20. SE, Software Engg., Prabhat Gangwar, ©2008 20 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 21. SE, Software Engg., Prabhat Gangwar, ©2008 21 Attribute-Driven Design (Bass et al, Ch 7)  Choose module to decompose  Refine this module:  choose architectural drivers (quality is driving force)  choose pattern that satisfies drivers  apply pattern  Repeat steps
  • 22. SE, Software Engg., Prabhat Gangwar, ©2008 22 Example ADD iterations  Top-level: usability ⇒ separate user interface ⇒ Seeheim/three tier architecture  Lower-level, within user interface: security ⇒ authenticate users  Lower-level, within data layer: availability ⇒ active redundancy
  • 23. SE, Software Engg., Prabhat Gangwar, ©2008 23 Generalized model  Understand problem  Solve it  Evaluate solution
  • 24. SE, Software Engg., Prabhat Gangwar, ©2008 24 Global workflow in architecture design context requirements evaluation results architecture backlog synthesis evaluation
  • 25. SE, Software Engg., Prabhat Gangwar, ©2008 25 Generalized model (cont’d) backlog sign.reqs constraints ideas assets architecture eval results synthesis evaluation
  • 26. SE, Software Engg., Prabhat Gangwar, ©2008 26 Design issues, options and decisions A designer is faced with a series of design issues  These are sub-problems of the overall design problem.  Each issue normally has several alternative solutions (or design options)  The designer makes a design decision to resolve each issue.  This process involves choosing the best option from among the alternatives.
  • 27. SE, Software Engg., Prabhat Gangwar, ©2008 27 Taking decisions Design problem sub- proble m (or issue) sub- proble m (or issue) Design option Desig n option Desig n option Desig n option Problem space Decision space Alternative solutions Alternative solutions Decision = best option Decision = best option
  • 28. SE, Software Engg., Prabhat Gangwar, ©2008 28 Decision space The space of possible designs that can be achieved by choosing different sets of alternatives. client-server monolithic fat-client thin-client client in a separate user interface layer no separate user interface layer Programmed in Java Programmed in Visual Basic Programmed in C++ client style
  • 29. SE, Software Engg., Prabhat Gangwar, ©2008 29 Tree or graph?  Issues and options are not independent ... client-server monolithic fat-client thin-client client in a separate user interface layer no separate user interface layer client style flexibility layered MVC
  • 30. SE, Software Engg., Prabhat Gangwar, ©2008 30 More than just IT  Technical and non-techical issues and options are intertwined  Architects deciding on the type of database versus  Management deciding on new strategic partnership or  Management deciding on budget
  • 31. SE, Software Engg., Prabhat Gangwar, ©2008 31 Some (tacit) decisions are related to norms and values
  • 32. SE, Software Engg., Prabhat Gangwar, ©2008 32 Types of decisions  Implicit, undocumented  Unaware, tacit, of course knowledge  Explicit, undocumented  Vaporizes over time  Explicit, explicitly undocumented  Tactical, personal reasons  Explicit, documented  Preferred, exceptional situation
  • 33. SE, Software Engg., Prabhat Gangwar, ©2008 33 Why is documenting design decisions important?  Prevents repeating (expensive) past steps  Explains why this is a good architecture  Emphasizes qualities and criticality for requirements/goals  Provides context and background
  • 34. SE, Software Engg., Prabhat Gangwar, ©2008 34 Uses of design decisions  Identify key decisions for a stakeholder  Make the key decisions quickly available. E.g., introducing new people and make them up2date.  ..., Get a rationale, Validate decisions against reqs  Evaluate impact  If we want to change an element, what are the elements impacted (decisions, design, issues)?  ..., Cleanup the architecture, identify important architectural drivers
  • 35. SE, Software Engg., Prabhat Gangwar, ©2008 35 Elements of a design decision Issues: design issues being addressed Decision Status: e.g., pending, approved Assumptions: underlying assumptions Alternatives Rationale; the why of the decision taken Implications: e.g. need for further decisions
  • 36. SE, Software Engg., Prabhat Gangwar, ©2008 36 Pointers on design decisions  Hofmeister et al, Generalizing a Model of Software Architecture Design from Five Industrial Approaches, Journal of Systems and Software, 2007  Tyree and Ackerman, Architecture decisions: demystifying architecture, IEEE Software, vol. 22(2), 2005.  Kruchten, Lago and van Vliet, Building up and exploiting architectural knowledge, WICSA, 2005.  Lago and van Vliet, Explicit assumptions enrich architectural models, ICSE, 2005.
  • 37. SE, Software Engg., Prabhat Gangwar, ©2008 37 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 38. SE, Software Engg., Prabhat Gangwar, ©2008 38 Software design in UML  Class diagrams, state diagrams, sequence diagram, etc  Who can read those diagrams?  Which type of questions do they answer?  Do they provide enough information?
  • 39. SE, Software Engg., Prabhat Gangwar, ©2008 39 Who can read those diagrams?  Designer, programmer, tester, maintainer, etc.  Client?  User?
  • 40. SE, Software Engg., Prabhat Gangwar, ©2008 40 Which type of questions do they answer?  How much will it cost?  How secure will the system be?  Will it perform?  How about maintenance cost?  What if requirement A is replaced by requirement B?
  • 41. SE, Software Engg., Prabhat Gangwar, ©2008 41 Analogy with building architecture  Overall picture of building (client)  Front view (client, “beauty” committee)  Separate picture for water supply (plumber)  Separate picture for electrical wiring (electrician)  etc
  • 42. SE, Software Engg., Prabhat Gangwar, ©2008 42 Architecture presentations in practice  By and large two flavors:  Powerpoint slides – for managers, users, consultants, etc  UML diagrams, for technicians  A small sample …
  • 43. SE, Software Engg., Prabhat Gangwar, ©2008 43
  • 44. SE, Software Engg., Prabhat Gangwar, ©2008 44
  • 45. SE, Software Engg., Prabhat Gangwar, ©2008 45
  • 46. SE, Software Engg., Prabhat Gangwar, ©2008 46
  • 47. SE, Software Engg., Prabhat Gangwar, ©2008 47
  • 48. SE, Software Engg., Prabhat Gangwar, ©2008 48 So, …  Different representations  For different people  For different purposes  These representations are both descriptive and prescriptive
  • 49. SE, Software Engg., Prabhat Gangwar, ©2008 49 IEEE model for architectural descriptions Mission Sy stemEnv ironment Architecture Rationale Architecture Description Concern Library Viewpoint Viewpoint Stakeholder Model View Mission Sy stemEnv ironment Architecture Rationale Architecture Description Concern Library Viewpoint Viewpoint Stakeholder Model View
  • 50. SE, Software Engg., Prabhat Gangwar, ©2008 50 Some terms (from IEEE standard)  System stakeholder: an individual, team, or organization (or classes hereof) with interests in, or concerns relative to, a system.  View: a representation of a whole system from the perspective of a related set of concerns.  Viewpoint: A viewpoint establishes the purposes and audience for a view and the techniques or methods employed in constructing a view.
  • 51. SE, Software Engg., Prabhat Gangwar, ©2008 51 Stakeholders  Architect  Requirements engineer  Designer (also of other systems)  Implementor  Tester, integrator  Maintainer  Manager  Quality assurance people
  • 52. SE, Software Engg., Prabhat Gangwar, ©2008 52 Viewpoint specification  Viewpoint name  Stakeholders addressed  Concerns addressed  Language, modeling techniques
  • 53. SE, Software Engg., Prabhat Gangwar, ©2008 53 Kruchten’s 4+1 view model Logical Viewpoint Implementation Viewpoint Process Viewpoint Deployment Viewpoint Scenarios End-user Functionality Programmers Software management Integrators Performance Scalability System engineers Topology Communications
  • 54. SE, Software Engg., Prabhat Gangwar, ©2008 54 4 + 1: Logical Viewpoint  The logical viewpoint supports the functional requirements, i.e., the services the system should provide to its end users.  Typically, it shows the key abstractions (e.g., classes and interactions amongst them).
  • 55. SE, Software Engg., Prabhat Gangwar, ©2008 55 4 + 1: Process Viewpoint  Addresses concurrent aspects at runtime (tasks, threads, processes and their interactions)  It takes into account some nonfunctional requirements, such as performance, system availability, concurrency and distribution, system integrity, and fault-tolerance.
  • 56. SE, Software Engg., Prabhat Gangwar, ©2008 56 4 + 1: Deployment Viewpoint  The deployment viewpoint defines how the various elements identified in the logical, process, and implementation viewpoints-networks, processes, tasks, and objects-must be mapped onto the various nodes.  It takes into account the system's nonfunctional requirements such as system availability, reliability (fault-tolerance), performance (throughput), and scalability.
  • 57. SE, Software Engg., Prabhat Gangwar, ©2008 57 4 + 1: Implementation Viewpoint  The imlementation viewpoint focuses on the organization of the actual software modules in the software-development environment.  The software is packaged in small chunks- program libraries or subsystems-that can be developed by one or more developers.
  • 58. SE, Software Engg., Prabhat Gangwar, ©2008 58 4 + 1: Scenario Viewpoint  The scenario viewpoint consists of a small subset of important scenarios (e.g., use cases) to show that the elements of the four viewpoints work together seamlessly.  This viewpoint is redundant with the other ones (hence the "+1"), but it plays two critical roles:  it acts as a driver to help designers discover architectural elements during the architecture design;  it validates and illustrates the architecture design, both on paper and as the starting point for the tests of an architectural prototype.
  • 59. SE, Software Engg., Prabhat Gangwar, ©2008 59 Architectural views from Bass et al (view = representation of a structure)  Module views  Module is unit of implementation  Decomposition, uses, layered, class  Component and connector (C & C) views  These are runtime elements  Process (communication), concurrency, shared data (repository), client-server  Allocation views  Relationship between software elements and environment  Work assignment, deployment, implementation
  • 60. SE, Software Engg., Prabhat Gangwar, ©2008 60 Module views  Decomposition: units are related by “is a submodule of”, larger modules are composed of smaller ones  Uses: relation is “uses” (calls, passes information to, etc). Important for modifiability  Layered is special case of uses, layer n can only use modules from layers <n  Class: generalization, relation “inherits from”
  • 61. SE, Software Engg., Prabhat Gangwar, ©2008 61 Component and connector views  Process: units are processes, connected by communication or synchronization  Concurrency: to determine opportunities for parallelism (connector = logical thread)  Shared data: shows how data is produced and consumed  Client-server: cooperating clients and servers
  • 62. SE, Software Engg., Prabhat Gangwar, ©2008 62 Allocation views  Deployment: how software is assigned to hardware elements  Implementation: how software is mapped onto file structures  Work assignment: who is doing what
  • 63. SE, Software Engg., Prabhat Gangwar, ©2008 63 How to decide on which viewpoints  What are the stakeholders and their concerns?  Which viewpoints address these concerns?  Prioritize and possibly combine viewpoints
  • 64. SE, Software Engg., Prabhat Gangwar, ©2008 64 Decision visualization
  • 65. SE, Software Engg., Prabhat Gangwar, ©2008 65 Business viewpoint
  • 66. SE, Software Engg., Prabhat Gangwar, ©2008 66 A caveat on quality  A view can be used to assess one or more quality attributes  E.g., some type of module view can be used to assess modifiability  It should then expose the design decisions that affect this quality attribute
  • 67. SE, Software Engg., Prabhat Gangwar, ©2008 67 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 68. SE, Software Engg., Prabhat Gangwar, ©2008 68 Architectural styles  An architectural style is a description of component and connector types and a pattern of their runtime control and/or data transfer.  Examples:  main program with subroutines  data abstraction  implicit invocation  pipes and filters  repository (blackboard)  layers of abstraction
  • 69. SE, Software Engg., Prabhat Gangwar, ©2008 69 Alexander’s patterns  There is abundance evidence to show that high buildings make people crazy.  High buildings have no genuine advantage, except in speculative gains. They are not cheaper, they do not help to create open space, they make life difficult for children, they wreck the open spaces near them. But quite apart from this, empirical evidence shows that they can actually damage people’s minds and feelings.  In any urban area, keep the majority of buildings four stories high or less. It is possible that certain buildings should exceed this limit, but they should never be buildings for human habitation.
  • 70. SE, Software Engg., Prabhat Gangwar, ©2008 70 General flavor of a pattern  IF you find yourself in <context>, for example <examples>, with <problem>  THEN for some <reasons>, apply <pattern> to construct a solution leading to a <new context> and <other patterns>
  • 71. SE, Software Engg., Prabhat Gangwar, ©2008 71 Components and Connectors  Components are connected by connectors.  They are the building blocks with which an architecture can be described.  No standard notation has emerged yet.
  • 72. SE, Software Engg., Prabhat Gangwar, ©2008 72 Types of components  computational: does a computation of some sort. E.g. function, filter.  memory: maintains a collection of persistent data. E.g. data base, file system, symbol table.  manager: contains state + operations. State is retained between invocations of operations. E.g. adt, server.  controller: governs time sequence of events. E.g. control module, scheduler.
  • 73. SE, Software Engg., Prabhat Gangwar, ©2008 73 Types of connectors  procedure call (including RPC)  data flow (e.g. pipes)  implicit invocation  message passing  shared data (e.g. blackboard or shared data base)  instantiation
  • 74. SE, Software Engg., Prabhat Gangwar, ©2008 74 Framework for describing architectural styles  problem: type of problem that the style addresses. Characteristics of the reqs’s guide the designer in his choice for a particular style.  context: characteristics of the environment that constrain the designer, req’s imposed by the style.  solution: in terms of components and connectors (choice not independent), and control structure (order of execution of components)  variants  examples
  • 75. SE, Software Engg., Prabhat Gangwar, ©2008 75 Main-program-with-subroutines style problem: hierarchy of functions; result of functional decomposition, single thread of control context: language with nested procedures solution:  system model: modules in a hierarchy, may be weak or strong, coupling/cohesion arguments  components: modules with local data, as well as global data  connectors: procedure call  control structure: single thread, centralized control: main program pulls the strings variants: OO versus non-OO
  • 76. SE, Software Engg., Prabhat Gangwar, ©2008 76 Abstract-data-type style problem: identify and protect related bodies of information. Data representations likely to change. context: OO-methods which guide the design, OO-languages which provide the class-concept solution:  system model: component has its own local data (= secret it hides)  components: managers (servers, objects, adt’s)  connectors: procedure call (message)  control structure: single thread, usually; control is decentralized variants: caused by language facilities
  • 77. SE, Software Engg., Prabhat Gangwar, ©2008 77 Implicit-invocation style  problem: loosely coupled collection of components. Useful for applications which must be reconfigurable.  context: requires event handler, through OS or language.  solution:  system model: independent, reactive processes, invoked when an event is raised  components: processes that signal events and react to events  connectors: automatic invocation  control structure: decentralized control. Components do not know who is going to react.  variants: Tool-integration frameworks, and languages with special features.
  • 78. SE, Software Engg., Prabhat Gangwar, ©2008 78 Pipes-and-filters style  problem: independent, sequential transformations on ordered data. Usually incremental, Ascii pipes.  context: series of incremental transformations. OS- functions transfer data between processes. Error-handling difficult.  solution:  system model: continuous data flow; components incrementally transform data  components: filters for local processing  connectors: data streams (usually plain ASCII)  control structure: data flow between components; component has own flow  variants: From pure filters with little internal state to batch processes
  • 79. SE, Software Engg., Prabhat Gangwar, ©2008 79 Repository style problem: manage richly structured information, to be manipulated in many different ways. Data is long-lived. context: shared data to be acted upon by multiple clients solution: system model: centralized body of information. Independent computational elements. components: one memory, many computational connectors: direct access or procedure call control structure: varies, may depend on input or state of computation variants: traditional data base systems, compilers, blackboard systems Shared Data Client Client Client
  • 80. SE, Software Engg., Prabhat Gangwar, ©2008 80 Layered style problem: distinct, hierarchical classes of services. “Concentric circles” of functionality context: a large system that requires decomposition (e.g., virtual machines, OSI model) solution:  system model: hierarchy of layers, often limited visibility  components: collections of procedures (module)  connectors: (limited) procedure calls  control structure: single or multiple threads variants: relaxed layering Layern Layer2 Layer1
  • 81. SE, Software Engg., Prabhat Gangwar, ©2008 81 Model-View-Controller (MVC) style problem: separation of UI from application is desirable due to expected UI adaptations context: interactive applications with a flexible UI solution:  system model: UI (View and Controller Component(s)) is decoupled from the application (Model component)  components: collections of procedures (module)  connectors: procedure calls  control structure: single thread variants: Document-View Model ViewController nn
  • 82. SE, Software Engg., Prabhat Gangwar, ©2008 82 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 83. SE, Software Engg., Prabhat Gangwar, ©2008 83 Architecture evaluation/analysis  Assess whether architecture meets certain quality goals, such as those w.r.t. maintainability, modifiability, reliability, performance  Mind: the architecture is assessed, while we hope the results will hold for a system yet to be built
  • 84. SE, Software Engg., Prabhat Gangwar, ©2008 84 Software Architecture Analysis Software architecture System Properties Qualities implementation properties
  • 85. SE, Software Engg., Prabhat Gangwar, ©2008 85 Analysis techniques  Questioning techniques: how does the system react to various situations; often make use of scenarios  Measuring techniques: rely on quantitative measures; architecture metrics, simulation, etc
  • 86. SE, Software Engg., Prabhat Gangwar, ©2008 86 Scenarios in Architecture Analysis  Different types of scenarios, e.g. use-cases, likely changes, stress situations, risks, far-into-the- future scenarios  Which stakeholders to ask for scenarios?  When do you have enough scenarios?
  • 87. SE, Software Engg., Prabhat Gangwar, ©2008 87 Preconditions for successful assessment  Clear goals and requirements for the architecture  Controlled scope  Cost-effectiveness  Key personnel availability  Competent evaluation team  Managed expectations
  • 88. SE, Software Engg., Prabhat Gangwar, ©2008 88 Architecture Tradeoff Analysis Method (ATAM)  Reveals how well architecture satisfies quality goals, how well quality attributes interact, i.e. how they trade off  Elicits business goals for system and its architecture  Uses those goals and stakeholder participation to focus attention to key portions of the architecture
  • 89. SE, Software Engg., Prabhat Gangwar, ©2008 89 Benefits  Financial gains  Forced preparation  Captured rationale  Early detection of problems  Validation of requirements  Improved architecture
  • 90. SE, Software Engg., Prabhat Gangwar, ©2008 90 Participants in ATAM  Evaluation team  Decision makers  Architecture stakeholders
  • 91. SE, Software Engg., Prabhat Gangwar, ©2008 91 Phases in ATAM 0: partnership, preparation (informally) 1: evaluation (evaluation team + decision makers, one day) 2: evaluation (evaluation team + decision makers + stakeholders, two days) 3: follow up (evaluation team + client)
  • 92. SE, Software Engg., Prabhat Gangwar, ©2008 92 Steps in ATAM (phase 1 and 2)  Present method  Present business drivers (by project manager of system)  Present architecture (by lead architect)  Identify architectural approaches/styles  Generate quality attribute utility tree (+ priority, and how difficult)  Analyze architectural approaches  Brainstorm and prioritize scenarios  Analyze architectural approaches  Present results
  • 93. SE, Software Engg., Prabhat Gangwar, ©2008 93 Example Utility tree Utility Performance Usability Maintainability Transaction response time (H, M) Throughput Training 150 transactions/sec Database vendor releases new version Normal operations
  • 94. SE, Software Engg., Prabhat Gangwar, ©2008 94 Outputs of ATAM  Concise presentation of the architecture  Articulation of business goals  Quality requirements expressed as set of scenarios  Mapping of architectural decisions to quality requirements  Set of sensitivity points and tradeoff points  Set of risks, nonrisks, risk themes
  • 95. SE, Software Engg., Prabhat Gangwar, ©2008 95 Important concepts in ATAM  Sensitivity point: decision/property critical for certain quality attribute  Tradeoff point: decision/property that affects more than one quality attribute  Risk: decision/property that is a potential problem  These concepts are overlapping
  • 96. SE, Software Engg., Prabhat Gangwar, ©2008 96 Software Architecture Analysis Method (SAAM)  Develop scenarios for  kinds of activities the system must support  kinds of changes anticipated  Describe architecture(s)  Classify scenarios  direct -- use requires no change  indirect -- use requires change  Evaluate indirect scenarios: changes and cost  Reveal scenario interaction  Overall evaluation
  • 97. SE, Software Engg., Prabhat Gangwar, ©2008 97 Scenario interaction in SAAM  Two (indirect) scenarios interact if they require changes to the same component  Scenario interaction is important for two reasons:  Exposes allocation of functionality to the design  Architecture might not be at right level of detail
  • 98. SE, Software Engg., Prabhat Gangwar, ©2008 98 Overview  What is it, why bother?  Architecture Design  Viewpoints and view models  Architectural styles  Architecture asssessment  Role of the software architect
  • 99. SE, Software Engg., Prabhat Gangwar, ©2008 99 Role of the software architect  Key technical consultant  Make decisions  Coach of development team  Coordinate design  Implement key parts  Advocate software architecture
  • 100. SE, Software Engg., Prabhat Gangwar, ©2008 100 Summary  new and immature field  proliferation of terms: architecture - design pattern - framework - idiom  architectural styles and design pattern describe (how are things done) as well as prescribe (how should things be done)  stakeholder communication  early evaluation of a design  transferable abstraction
  • 101. SE, Software Engg., Prabhat Gangwar, ©2008 101 Further reading  Mary Shaw and David Garlan, Software Architecture; Perspectives of an Emerging Discipline, 1995.  Philippe B. Kruchten, The 4+1 view model of architecture, IEEE Software, 12(6):42-50, November 1995.  Frank Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, 1996. Part II: 2001.  Erich Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, 1995.  Len Bass et al, Sofware Architecture in Practice, 2003 (2nd edition).  C. Hofmeister et al., Applied Software Architecture, 1999.  Jan Bosch, Design & Use of Software Architectures, 2000.

Editor's Notes

  • #2: Is the notion of software architecture really important?
  • #4: In a sense, the two elements on the lower left are new: the elements labeled appearance/behaviour, and the one labelled architectural design
  • #5: Iteratie in dit model zit vooral in de requirements, en met slechts een paar stakeholders: onwerpers, opdrachtgever en gebruiker, met name. Anzelfsprekend is er ook iteratie omdat bv kwaliteitskenmerken niet re realiseren zijn, eea te duur wordt, enz. Maar dat is vaak nadat de overeenkomst gesloten is.
  • #7: Iteratie in dit model zit vooral in de requirements, en met slechts een paar stakeholders: onwerpers, opdrachtgever en gebruiker, met name. Anzelfsprekend is er ook iteratie omdat bv kwaliteitskenmerken niet re realiseren zijn, eea te duur wordt, enz. Maar dat is vaak nadat de overeenkomst gesloten is.
  • #9: Hier valt natuurlijk nog veel meer over te zeggen, bv in relatie tot hergebruik, product lines, enz.
  • #10: Vehicle: it is global, often graphical, often uses scenarios. Early design decisions are important (cost of rework) Means for planning and control: via the work breakdown structure which is derived from the architecture. Transferable abstraction: architecture as a linguistic notion, as a basis for reuse, product lines, its use in traing people.
  • #11: 1992: Foundatins for the study of software architecture, Software Engineering Notes 1987: Zachman in IBM Systems Journal: Framework for Information Architecture 1989: Shaw , Larger Scale Systems require Higher Level Abstractions 1972: Dijkstra in Notes on Structured Programming, Note #10. This same text is also present in the proceedings of the 1969 SE conference Intriguing question: What if the NATO conference was called Software Architecture?
  • #13: This is all about abstraction. These abstractions first had a specific goal, and later turned into a notion of its own. E.g., procedures at first only served as a shorthand; memory was expensive, and people didn’t want to repeat the same sequence of instructions over and over again. Only later, did the notion of procedural abstraction evolve. Once people have discovered this broader notion, they can use it more effectively. The same holds for the other abstraction notions, including patterns and architecture.
  • #14: Note: in edition 1, they talked about components, not elements. Reason for change is that component has a rather (runtime) specific meanng within CBSE: a component is something that can be invoked/activated; but this line is not really followed throughout the book. Ergens verderop staat bv “component is a unit for reuse”
  • #15: Externally visible: so you are abstracting from something architecture defines components; only their interaction counts, not their internals. Every system has an architecture, and this architecture is not the same as its description (see also next IEEE definition) Architecture can be good or bad: hence evaluation Process: how do you get an architecture. Rules: what should be/not be, in an architecture?
  • #16: Module structure: static, aimed at the implementation Open question: what is the relation between structures? Later on, in IEEE, and by now generally accepted, these structures are called viewpoints.
  • #18: The architectural descriptions are concrete, but the architecture itself is ingherently conceptual, and cannot be captured in any (set of) views. Fundamental: so you concentrate on the important things, and abstract from the rest. An architecture does not exist in the abstract, but always in some context. We can only understand its qualities in its context.
  • #22: ADD takes as input a set of quality attribute scenarios (source, stimulus, etc), and employs knowledge about relation between quality and architectural patterns that achieve it.
  • #27: Design decisions are the reasons why a certain architecture is the way it is. In this way, a software architecture can be considered as a series of DD. In taking these DD, the architect is faced with desing issues and options. ... For example, a design issue can be the type and level of security. Security can be decoposed into authentication (user recognition), authorization (user access to data), privacy (enchryption of data exchanged on a public network). If the architecture is for a medical system, than both security types are compulsory. If it is for gaming applications, probably not all of them are required, and could be dropped in favor of e.g., higher performance.
  • #28: Organization of the decision process. - Issues belong to the problem space: expressed as problems to be solved. - Options belong to the decision space (i.e., possible alternative solutions). Note: the decision we take is or should be the BEST in this moment, and always with respect to some criterion. If the criterion changes the decision might be not the BEST anymore, and maybe another option is more appropriate.
  • #29: Very concrete example, maybe too low level. Issues that can be relevant here in the decision process are: level of flexibility; outsourcing/external acquisition of client technology (that mans need for separate presentation – also relevant for the budget); if using the Web/Internet; performace; ...
  • #30: We need to observe that design issues are not independent.Example: a number of options become invalid due to a desireable NFR (quality). For example, flexibility could be achieved through certain design patterns, like MVC implementing separation of concerns that can be implemented by corresponding replaceable components, and layered architecture that restricts the client&amp;server interations and hence allows to formalize the role of each component. If we choose any among the two, we exclude the &amp;apos;monolithic&amp;apos; subtree and also we need a separate GUI layer.
  • #31: A similar depedency exists between tech and non-tech options. Here we have an example
  • #35: 2: use AK, evaluate AK
  • #49: Al die plaatjes hebben wel een soort dubbele functie: ze zijn zowel descriptief (beschrijven iets) als prescriptief (zeggen hoe het moet). Dat gold trouwens ook voor de plaatjes van de studenten
  • #50: Dat wiebertje betekent: aggregatie: een view is een deel van een architectuurbeschrijving (part-whole relationship)
  • #52: Hier gaat het om hun communication needs (p 204). Architect: negotiates, makes tade-offs Reqs engineer: idem Designer: resolve issues, bv rond resource consumption, performance issues Implementor: constraints and freedoms richting downstream activities. Tester, integrator: correct black-box behavior of parts. Maintainer: areas a prospective change will affect. Manager: maken development team, assign tasks, plan resources, track progress. QA: basis for conformance checking
  • #55: The logical view primarily supports the functional requirements; the services the system should provide to its end users.It depicts the major design elements and their interaction. Designers decompose the system into a set of key abstractions, taken mainly from the problem domain. These abstractions are objects or object classes that exploit the principles of abstraction, encapsulation, and inheritance. In addition to aiding functional analysis, decomposition identifies mechanisms and design elements that are common across the system. Components are related by “shares data with” In termen van het boek is dit een module view
  • #56: The process view takes into account some nonfunctional requirements, such as performance and system availability. It addresses concurrency and distribution, system integrity, and fault-tolerance. The process view also specifies which thread of control executes each operation of each class identified in the logical view. So the process view describes the mapping of functions to runtime elements. It concenrs the dynamics of the system. A process is a group of tasks which form a logical unit. A process can be started, stopped, resumed, etc., and there is communication between processes. Components are related by “synchronizes with” In termen van het boek: een C&amp;C view
  • #57: The physical view takes into account the system&amp;apos;s nonfunctional requirements such as system availability, reliability (fault-tolerance), performance (throughput), and scalability. The software executes on a network of computers (the processing nodes). The various elements identified in the logical, process, and development views-networks, processes, tasks, and objects-must be mapped onto the various nodes. Several different physical configurations will be used-some for development and testing, others for system deployment at various sites or for different customers. The mapping of the software to the nodes must therefore be highly flexible and have a minimal impact on the source code itself. Components are related by “communicates with” In termen van het boek: een allocation view
  • #58: The development view focuses on the organization of the actual software modules in the software-development environment. The software is packaged in small chunks-program libraries or subsystems-that can be developed by one or more developers. The subsystems are organized in a hierarchy of layers, each layer providing a narrow and well-defined interface to the layers above it. Components are related by “is submodule of”. In termen van het boek: een allocation view
  • #59: The scenario view consists of a small subset of important scenarios-instances of use cases-to show that the elements of the four views work together seamlessly. For each scenario, we describe the corresponding scripts (sequences of interactions between objects and between processes). This view is redundant with the other ones (hence the &amp;quot;+1&amp;quot;), but it plays two critical roles: it acts as a driver to help designers discover architectural elements during the architecture design; it validates and illustrates the architecture design, both on paper and as the starting point for the tests of an architectural prototype. The scenario view is important for stakeholder communication.
  • #60: Module structure: static, aimed at the implementation Open question: what is the relation between structures? The structure refers to the system itself, the corresponding view is how it is documented.
  • #61: Decomposition: vaak sartpunt voor design, nuttig vor modifiability (likely changes fall within a few modules), basis for project organization, structure of documentation, testplans, etc. Uses: kun je gebruiken om functional subsets te bepalen. Maakt het dus mogelijk incrementele ontwikkeling te realiseren. Layered: vaak “taal”, virtual machine. Class: dan kun je redeneren over reuse, incremental addition of functionality.
  • #62: Process: relation is “attachment”, how are cmponents hooked together. Belangrijk voor performance, availability. Concurrency: logical thread: sequence of computation that can be allocated to a separate physical thread later in the design rpocess. Used to determine possibilities for concurrency. Shared data: gaatibution, load balancing (runtime performamce) over componenten die persistent data maken, opslaan, gebruiken. Handig als systeem dat voral doet. Goed voor performace, data integrity. Client-server: connectors are the protocols and messages they exchange. Goed voor separation of concerns (modifiabilty), physical distribution
  • #63: Deployment: elements: software (meestal process van C&amp;C view), hardware elements and communication pathways. Geeft aan waar software zit, en hoe het evt migreert. Dan kun je redeneren over performance, security, availability, ed. Implementation: voor management van ontwikkelactiviteiten, build processes. Work assignment: welke kennis heb je waar nodig?, functional commonality aan 1 team toewijzen, etc.
  • #64: Bv via het maken van een stakeholder/view list. Geef aan hoeveel uit elke vew de stakeholders nodig hebben. Vaak zul je views willen combineren, want je wilt er geen 12 maken. (bv module decomposition and implementation view kun je vaak combineren. Of module decomposition en layered of uses).
  • #65: Londense arts, Snow. Platje komt uit Wikipedia
  • #67: No single description (view) captures an architecture completely Note that these views concern the system itself (the micro-architecture), and not the system in its environment (the macro architecture). The 4+1 views are from the 1995 IEEE Software article. A similar set of views is given in Soni et al, 1995, ICSE proceedings.
  • #85: Je “test” dus die properties, en je hoopt dat, als het systeem eenmaal geimlementeerd is, dat systeem de betreffende kwaliteitseigenschappen zal hebben.
  • #86: Metrics kun je je voorstellen als bij “gewone” programma’s: tellen van aantallen nterfaces, aantallen functies, vorm van een gelayerde architectuur, ed. Heeft dan allemaal met coupling en cohesion te maken. Simulatie is behoorljk ingewikkeld. Je maakt dan iha gebruik van tools, doet bepaalde aannamen over onderdelen van de architectuur (gemiddelde dorlooptijd van compnenten ed, snelheid netwerk, etc), en doet op basis daarvan uitspraken. Scenarios worden waarschijnlijk het meest gebruikt. Zijn ook een manier om stakehlders erbij te betrekken. Een beetje zoals facilitated workshops bij requirements analyse dat doen.
  • #87: A change scenario is a description of a concrete event that might lead to a change in the system. E.g. a move from Windows 2000 to Windows NT. Often, the architect will be asked for likely changes. Chances are he will come up with changes already anticipated by the architecture. This is somewhat akin to testing your own software. Is 10 scenarios enough? Or 1000? There are no good stopping criteria, yet.
  • #88: Een architectuur heeft alleen betekenis in de context van een set kwaliteitseisen. Als je die niet hebt is elke architectuur goed. Je kunt, met de hand en n een groep, niet teveel tegelijk doen. Dus scope beperken. Bv alleen modifiability, of modifiability + performance. Kosten moeten &amp;lt; opbrengsten zijn Key personnell: architect oid : stakeholders die bij major concerns horen Liefst een apart team: onafhankelijk, objectief, goed. Anders wordt het niet opgevolgd. Misschien moeten ze wel een zekere macht hebben. Verwachtingen van assessment: welke, wat levert het op, wat gebeurt daarmee, wie krijgt de resultaten.
  • #89: Het is een soort inspectie, waarbij je met een groep stakeholders in een dialoog komt over de architectuur. Het enge, nauwe, doel is om quality te testen. Maar vaak is wat eruit kmt breder, en gaat het m meer zaken. Wat dat betreft is het net als andere techneken om samen met betrokkenen gestructureerd over een systeem te praten. Active design reviews van Parnas hebben aan de basis van ATAM ed gestan.
  • #90: Ervaringen bij AT&amp;T: 10% reductie in kosten. Er zijn veel anecdotes, weinig harde getallen. Forced preparation: je moet documentatie maken, dus nadenken over je beslissingen. Zo krijg je rationale, en die is tijdens evolutie van zeer groot belang. Early detetction: als alle vroege testtechnieken Veel requirements worden zmaar “gesteld”, en niemand weet of ze haalbaar zijn. Requirements kunnen ook conflicten opleveren. Bij architectuurevaluatie kom je die hopelijk tegen, en dan kn je er over onderhandelen, en afspraken maken waarbij je dan weet wat je afgesproken hebt. En tenslotte, de architectuur kan er aleen maar beter van worden. En dat geldt niet alleen voor de architectuur in kwestie, maar ook voor volgende architecturen. Net als bij testen, je wordt een betere ontwikkelaar als je nspecties doet. Het is een leerproces voor betrokkenen.
  • #91: Evaluation team: van buiten het project
  • #93: Utility tree: tree whose root is “utility”, and whose leafs are scenarios (see next slide). This utility tree guides the rest of the analysis. During the analysis, the architecture is analyzed to see whether the the selected styles “hold promise for meeting the attribute specific requirements for which it is intended”. The key is to link architectural decisions and quality attribute requirements that need to be satisfied.
  • #95: Sensitivity point: property of component that is critical to achieve a particular quality attribute response. Bv gemiddeld aantal dagen voor onderhoud kan gevoelig zijn voor de mate van encapsulatie van file formats. Of latency (slapend; wrsch wachttijd) voor processing message kan afhankelijk zijn van prioriteit van processen die deze message verwerken. Tradeoff point: property die op meer dan een attribuut slaat en sensitivity point voor meer dan 1 attribuut is. Als je bv het nivo van encryptie verandert heeft dat een significante invloed op zowel security als performance (maar wel in verschillende richtingen). Dus je wilt speciaal op tradeoff points letten.
  • #96: Example sensitivity points: level of confidentiality is sensitive to number of bits of encryption. Average number of persondays needed for maintenance might be sensitive to degree of encapsulation Tadeoff: changing level of encryption -&amp;gt; more security, less performance.
  • #97: SAAM is eenvoudiger dan ATAM. If two scenarios affect the same component, these scenarios are said to interact. If there is an interaction between scenarios that are semantically not related, the decomposition is, potentially, not so good.
  • #98: Allocation of functionality: if semantically unrelated scenarios interact, decomposition is not proper. Semantically unrelated things are in the same component. On the oher hand, we may have to decompose the architecture further, to get smaller subcomponents that do not interact.
  • #100: In my view, making decisions, in concultation with ALL stakeholders, is the most crucial issue for the software architect.