Date post: | 13-Jan-2016 |
Category: |
Documents |
Upload: | amelia-potter |
View: | 215 times |
Download: | 0 times |
Ævol : A Tool for Planning Architecture EvolutionDavid Garlan & Bradley Schmerl
Carnegie Mellon University
© David Garlan & Bradley Schmerl
2ICSE 2009
Software Architecture
Software architectures are an important part of software development Bridge requirements and implementations Provide models that can be analyzed for various
quality attributes Effectively communicate system to clients and
developers
© David Garlan & Bradley Schmerl
3ICSE 2009
Architecture Examples
© David Garlan & Bradley Schmerl
4ICSE 2009
Architecture Evolution (AE)
Increasingly, businesses must evolve their architectures From A to C, through a series of incremental architectures
B, B’, B’’ E.g., migrate batch-oriented systems to web-based
interactive system; or migrate client-server system to service-oriented architecture (SOA).
Little existing support available to … Plan how to make the transition from A to C Characterize feasible architecture evolution paths Ensure that architecture evolution plans are technically
sound Make engineering tradeoffs between alternative paths of
evolution
© David Garlan & Bradley Schmerl
5ICSE 2009
Questions we might like to answer How can we stage the evolution to achieve business
goals, given limited development resources? Are there technical constraints on how we stage the
evolution? How can we make principled tradeoffs between
benefits, time, development cost, and risk? Which kinds of changes can be made independently,
and which require coordinated system-wide modifications?
How can an evolution plan be represented and communicated within an organization?
© David Garlan & Bradley Schmerl
6
Observations There are many facets to this problem
Business and organizational context Architectural structures Software structures Technology
In this work we focus on Architectural Structures Specifically, component and connector
architectures Support for high-level planning Provide bridge between business requirements
and software/implementation structure
ICSE 2009
© David Garlan & Bradley Schmerl
7ICSE 2009
Foundations We can characterize AE as path selection in a
large state machine nodes represent individual architectures arcs represent transformations between
architectures the initial state is the architecture of the current
system the final states are desirable target
architectures an evolution path is a path from the initial state
to a final state
© David Garlan & Bradley Schmerl
8
Architecture Evolution
Current System
Target System
Time
path
ICSE 2009
© David Garlan & Bradley Schmerl
9ICSE 2009
Analysis of Evolution Paths Annotate paths with cost/benefit properties
Benefits of nodes; costs of transitions Benefits
Capabilities delivered, quality attributes, evolvability
Costs Time, effort, $
We can then calculate utility of paths Economic (e.g., Options); Planning (Markov chains)
The problem: select a path from the initial state to a final state that maximizes utility
benefitscosts
© David Garlan & Bradley Schmerl
10
Ævol A tool that allows an architect to
Construct architecture evolution paths Nodes linked to architecture representations
Compare architecture instances on those paths Identify differences between two nodes
Associate properties with nodes and arcs Appropriate to domain and business context
Analyze paths Using one or more analyses
A framework
ICSE 2009
© David Garlan & Bradley Schmerl
11
Ævol Extension Points
Ævol Framework
algo
rithm
algo
rithm
Co
mp
arison
alg
orith
m
algorithmalgorithmProperties
algo
rithm
algo
rithm
Path
An
alysis
Diagramming
Architecture Tool
ICSE 2009
© David Garlan & Bradley Schmerl
12ICSE 2009
Ævol Demo
© David Garlan & Bradley Schmerl
13
On-going Work
Evolution styles Define families of evolution paths with similar
characteristics Provide domain-specific transformation operators Enforce path constraints Support specialized analysis
Linkages to cost estimation tools code management tools
Automated path generation and exploration
ICSE 2009
© David Garlan & Bradley Schmerl
14ICSE 2009
Related Work Software evolution
Lots of work in this area – mostly focused on code structures: refactoring, configuration management, dependency analysis, etc.
Architecture evolution Architecture differencing and variation tracking
Architecture transformation Dynamic ADLs, graph grammars, etc.
Planning Project management tools AI Economics
© David Garlan & Bradley Schmerl
15ICSE 2009
For more information
“Evolution Styles: Formal foundations and tool support for software architecture evolution.” David Garlan. CMU-CS-08-142, June 2008.
“Towards Engineered Architecture Evolution” Sagar Chaki, Andres Diaz-Pace, David Garlan, Arie Gurfinkel, Ipek Ozkaya. ICSE MiSE 2009.