Evolution Styles Foundations and Tool Support for Software - - PowerPoint PPT Presentation

evolution styles
SMART_READER_LITE
LIVE PREVIEW

Evolution Styles Foundations and Tool Support for Software - - PowerPoint PPT Presentation

Evolution Styles Foundations and Tool Support for Software Architecture Evolution David Garlan Jeffrey M. Barnes garlan@cs.cmu.edu jmbarnes@cs.cmu.edu Bradley Schmerl Orieta Celiku schmerl@cs.cmu.edu orietac@cs.cmu.edu Institute for


slide-1
SLIDE 1

Evolution Styles

Foundations and Tool Support for Software Architecture Evolution

David Garlan

garlan@cs.cmu.edu

Jeffrey M. Barnes

jmbarnes@cs.cmu.edu

Bradley Schmerl

schmerl@cs.cmu.edu

Orieta Celiku

  • rietac@cs.cmu.edu

Institute for Software Research

Carnegie Mellon University

slide-2
SLIDE 2

Garlan, Barnes, Schmerl, & Celiku

Background

  • Software architecture is effective for:

– Designing a target system – Evaluating a proposed or existing system – Communicating with stakeholders – Etc.

  • But all of this ignores the evolutionary

aspect of what architects do

2 Evolution Styles

slide-3
SLIDE 3

Garlan, Barnes, Schmerl, & Celiku

Architecture Evolution

  • Architecture evolution is central to software

development

  • At present, architects have few tools to help

plan and execute evolutions

Evolution Styles 3

new market opportunities new technologies new platforms new frameworks

require

architectural change

slide-4
SLIDE 4

Garlan, Barnes, Schmerl, & Celiku

Architecture Evolution Questions

  • How should we stage the evolution to

achieve our goals, given limited resources?

  • How can we be certain that intermediate

releases do not break existing functionality?

  • How can we make tradeoffs between time,

cost, development effort, risk, etc.?

  • How can we represent and communicate an

architecture evolution plan?

Evolution Styles 4

slide-5
SLIDE 5

Garlan, Barnes, Schmerl, & Celiku

A Model of Architecture Evolution

Evolution Styles 5

Current System Target System Time path

slide-6
SLIDE 6

Garlan, Barnes, Schmerl, & Celiku

Evolution Paths

This allows us to model:

  • How the architecture develops over time
  • The tradeoffs among the different ways of

getting from point A to point B

  • Stages of development, release points, etc.
  • Constraints over evolution paths

Evolution Styles 6

slide-7
SLIDE 7

Garlan, Barnes, Schmerl, & Celiku

Evolution Styles

  • Key insight: Classes of domain-specific

evolution paths can be formally specified and reused

  • We thus introduce the notion of an

evolution style, analogous to a traditional architectural style

  • This concept allows architects to reuse their

knowledge over classes of evolutions

Evolution Styles 7

slide-8
SLIDE 8

Garlan, Barnes, Schmerl, & Celiku

Evolution Styles

  • Thin-client/mainframe system →

tiered Web application

  • j2ee Web services architecture →

cloud computing

  • Ad hoc peer-to-peer system →

hub-and-spoke architecture with coordination middleware

Evolution Styles 8

slide-9
SLIDE 9

Garlan, Barnes, Schmerl, & Celiku

Example

  • A company has accumulated several

different subsystems, connected ad hoc by hand-coded bridge elements, which must be independently maintained

  • Want to move to an off-the-shelf

integration framework

Evolution Styles 9

slide-10
SLIDE 10

Garlan, Barnes, Schmerl, & Celiku

initial target

Controller

Example

Evolution Styles 10

Accounts

ReimburseExpenses PaySalary PaySupplier BillCustomers

Personnel

SupplyOffice

Inventory Accounts

ReimburseExpenses PaySalary PaySupplier BillCustomers

Personnel Inventory

SupplyOffice

slide-11
SLIDE 11

Garlan, Barnes, Schmerl, & Celiku

Evolution Styles

  • This kind of migration is fairly common
  • We can capitalize on past experience using

an evolution style, which would:

– Identify the essential characteristics of the initial and target architectures – Include a set of architectural operators that may be composed into an evolution path – Specify a set of path constraints that would capture correctness conditions for a path

Evolution Styles 11

slide-12
SLIDE 12

Garlan, Barnes, Schmerl, & Celiku

Evolution Styles

Formally, an evolution style comprises:

  • An initial architectural style
  • A target architectural style
  • A set of architectural operators, which

transform the structure of a system

  • A set of path constraints
  • A collection of analyses

Evolution Styles 12

slide-13
SLIDE 13

Garlan, Barnes, Schmerl, & Celiku

Example Path Constraints

  • In every release of the software, all the
  • riginal functionality must exist
  • The system must start in style S₁, progress

to a hybrid style of S₁ and S₂, and end in S₂

  • Once a component is in data center 2, it

must remain in data center 2

Evolution Styles 13

slide-14
SLIDE 14

Garlan, Barnes, Schmerl, & Celiku

Linear Temporal Logic (ltl)

Evolution Styles 14

p always p p holds at every subsequent step p eventually p p holds at some subsequent step ○p next p p holds in the next step p U q p until q p holds until q first holds

p p p p p p p p p p p p p p p q

slide-15
SLIDE 15

Garlan, Barnes, Schmerl, & Celiku

ltl Example

ltl is sufficient to express many interesting properties The billing component will not be removed until a controller is introduced billingComponentPresent(system) U controllerPresent(system)

Evolution Styles 15

predicates over systems, defined by the evolution style keyword that refers to the architecture of the current state

slide-16
SLIDE 16

Garlan, Barnes, Schmerl, & Celiku

Limitations of ltl

But some properties are impossible to express in ltl In every release, all original functionality must exist (release → hasAllFunc(system, .system))

Evolution Styles 16

Need some way to refer back to a previous step

slide-17
SLIDE 17

Garlan, Barnes, Schmerl, & Celiku

Our Solution: Rigid Variables

Rigid variables [Ric92] preserve information from previous steps In every release, all original functionality must exist (release → hasAllFunc(system, .system))

Evolution Styles 17

s {s}

slide-18
SLIDE 18

Garlan, Barnes, Schmerl, & Celiku

Evaluation Functions

  • In addition to hard constraints, we have

evaluation functions, which help architects choose among candidate paths

  • We associate:

– Benefits with release nodes

  • Features, quality attributes

– Costs with transitions

  • Time, effort, money

Evolution Styles 18

slide-19
SLIDE 19

Garlan, Barnes, Schmerl, & Celiku

Tool Support

We have developed a tool, Ævol [gs09], that lets architects:

  • Define and analyze

evolutions

  • Compare nodes
  • Evaluate paths
  • Create styles
  • Enforce constraints

Evolution Styles 19

slide-20
SLIDE 20

Garlan, Barnes, Schmerl, & Celiku

Future Work

  • Develop an understanding of evolution
  • perators
  • Create evolution analyses
  • Enhance our tool

– Better support for operators – Catalog of styles – Visualization improvements

  • Automatically generate possible paths (as
  • pposed to merely selecting among paths)

Evolution Styles 20

slide-21
SLIDE 21

Garlan, Barnes, Schmerl, & Celiku

Related Work

  • Project planning
  • Architecture transformation

– Formal methods for architecture transformation – Tamzalit et al., evolution styles [togs06]

  • Tradeoff analysis for architecture evolution

– Kazman et al., tradeoffs with tactics [kbk06]

  • Architecture evolution for specific styles

Evolution Styles 21

slide-22
SLIDE 22

Garlan, Barnes, Schmerl, & Celiku

Questions and Comments

  • The slides for this talk are available at

http://www.cs.cmu.edu/~jmbarnes/papers/wicsa09-slides.pdf

  • We would like to thank:

– The master’s students who worked on the Ævol tool – Our colleagues at the Software Engineering Institute who have worked with us on architecture evolution [see cdggo09] – The other members of our able group, who provided helpful feedback – Our funders, the National Science Foundation and the u.s. Department of Defense

  • References

[cdggo09] Chaki et al., “Toward engineered architecture evolution,” in Proc. MiSE’09 [gs09] Garlan & Schmerl, “Ævol,” in Proc. icse’09 [kbk06] Kazman et al., “The essential components of software architecture design and analysis,” J. Syst. & Software, vol. 79, no. 8, pp. 1207–1216 [Ric92] Richardson, “Supporting lists in a data model,” in Proc. vldb’92 [togs06] Tamzalit et al., “Updating software architectures,” in Proc. serp’06

Evolution Styles 22