+ All Categories
Home > Documents > Understanding and Propagating Architectural Changes How can we manage changes in product line...

Understanding and Propagating Architectural Changes How can we manage changes in product line...

Date post: 18-Jan-2018
Category:
Upload: philomena-reynolds
View: 223 times
Download: 0 times
Share this document with a friend
Description:
Example – Target Display – system changes Target Display MapDisplay DistanceCalc GPS Data Target Display MapDisplay GPS Data Logger FileAccess EntitySelection FeatureSet
34
Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van der Hoek Presented by Jaime Acosta
Transcript
Page 1: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Understanding and Propagating Architectural Changes

How can we manage changes in product line architectures?

Christopher Van der Westhuizen and Andre van der Hoek

Presented by Jaime Acosta

Page 2: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Problems

• Capturing architectural changes– ADLs with version support– ASCII diff– XML diff

• Understanding differences introduced– Propagating changes in similar systems

Page 3: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Example – Target Display – system changes

Target Display

MapDisplay

DistanceCalc

GPS Data

Target Display

MapDisplay

GPS Data

Logger

FileAccess

EntitySelection

FeatureSet

Page 4: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Example – Returning Employee

• Gone for six months• Get up to speed• Understand changes• Number of other products can benefit from

advances• Apply these changes to all in product line

Page 5: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Problems

• Effort• Time• Cost• Expertise

Page 6: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Alleviations

• Automated support– Recognition– Propogation

• Where has this problem been tackled before?

Page 7: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Solution

• Configuration Management– Understanding nature of src code changes– Propagate changes to other versions of systems

• Requires– Differencing – Merge

Page 8: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Example – an issues in product line architectures

Target Display for customer A

MapDisplay

ARDS Data

EntityControl

FeatureSet

Target Display for customer B

MapDisplay

GPS Data

Logger

FileAccess

EntitySelection

FeatureSet

Target Display for customer C

MapDisplay

DistanceCalc

GPS Data

Page 9: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

CM Approaches

• Plain text-based– Line by line differencing/merging

• Does not capture architectural semantics

• XML based– Element based differencing/merging

• Still does not provide desired level of functionality

• Replacement is not supported

Page 10: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contributions

• Representation for product line architectures– xADL schema

• Algorithm for Difference– Based on xADL schema

• Algorithm for Merge– Based on xADL schema

Page 11: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

xADL 2.0

• Every ADL shares common modeling concepts• Allows for extension• Example extensions to structures and types

schema– Options – optional entities– Variants – variable types– Versioning – different versions of entities

Page 12: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 1: Representation of Product Line Architectures

• xADL– Authors extension to allows documenting changes

Page 13: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 1: XML Schema

• All required data is in the diff– Do not need original architecture– More efficient for merging with new architecture

• Allows universal algorithms– Tool support– Extension of components

Page 14: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 1: XML Schema

• Every element has a uniqueID– Differencing– Merging– This holds even in different arch specifications

• No direct support for replacements– Simplicity– Separate treatment of difficult problem

Page 15: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

• Must describe– Adds– Removes– Replacements

Contribution 2: Differencing Algorithm

Page 16: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 2: Differencing Algorithm – Adds/Removes• Input:

– Product line architecture 1– Product line architecture 2

• Output:– XML representing architectural differences

• Additions and Removals

Page 17: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 2: Differencing Algorithm – Adds/Removes

Page 18: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

• Example

Contribution 2: Differencing Algorithm – Adds/Removes

Page 19: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 2: Differencing Algorithm - Replacements• List of adds and remove is not sufficient

• Knowing about substitution is important– Changes in large systems are easier to understand

• Higher level concept

Page 20: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 2: Differencing Algorithm - Replacements• Input:

– Additions– Removals

• Output:– Replacement sets

• Idea– Upon replacement, must be old link and new link– Use these as starting points and form groups

Page 21: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 2: Differencing Algorithm - Replacements

Page 22: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

• Example

Contribution 2: Differencing Algorithm - Replacements

Page 23: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

• We now have a comprehensive diff– We can see the changes in an architecture– We can compare two architectures– How to apply advances to other architectures?

Contribution 3: Propagation

Page 24: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

• Input:– Diff– Target architecture

• Output:– Target architecture with enhancements

Contribution 3: Propagation

Page 25: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Contribution 3: Propagation

Page 26: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Limitations

• Only works for product line architectures• Must be very similar• Must have the same core• Dangerous if code is manually changed• What if you don’t want all of the changes?• Is there any support at the source code level?

Page 27: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Future Work

• Graphical Interface

• Differencing and merging for dynamic updates

• Runtime optimizations

Page 28: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Examples of xADL

Page 29: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Examples of xADL (component)<types:archTypes xsi:type="types:ArchTypes"/> <types:archStructure types:id="archStructureffa80164-77374a95-89b923a6-2fd90003" xsi:type="types:ArchStructure"> <types:description xsi:type="instance:Description">TargetSystem1</types:description> <types:component types:id="componentffa80164-773816af-c279a053-2fd90008" xsi:type="types:Component"> <types:description xsi:type="instance:Description">GPSData</types:description> <types:interface types:id="interfaceffa80164-773a1cc0-0552091f-2fd901a0" xsi:type="types:Interface"> <types:description xsi:type="instance:Description">gpsIfx</types:description> <types:direction xsi:type="instance:Direction">none</types:direction> </types:interface> </types:component>

Page 30: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Examples xADL (connector)

<types:connector types:id="connectorffa80164-773944fd-94c9a164-2fd900d9" xsi:type="types:Connector"> <types:description xsi:type="instance:Description">connector1</types:description> <types:interface types:id="interfaceffa80164-773a3ea0-35d24a71-2fd901c7" xsi:type="types:Interface"> <types:description xsi:type="instance:Description">connector1Ifx1</types:description> <types:direction xsi:type="instance:Direction">none</types:direction> </types:interface> <types:interface types:id="interfaceffa80164-773a7501-990a20d2-2fd901ef" xsi:type="types:Interface"> <types:description xsi:type="instance:Description">connector1Ifx2</types:description> <types:direction xsi:type="instance:Direction">none</types:direction> </types:interface> </types:connector>

Page 31: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Examples of xADL (link)

<types:link types:id="linkffa80164-7739f487-28162479-2fd9017a" xsi:type="types:Link"> <types:description xsi:type="instance:Description">gpsConnLink</types:description> <types:point xsi:type="instance:Point"> <instance:anchorOnInterface xlink:href="#interfaceffa80164-773a1cc0-0552091f-2fd901a0" xsi:type="instance:XMLLink" xlink:type="simple"/> </types:point> <types:point xsi:type="instance:Point"> <instance:anchorOnInterface xlink:href="#interfaceffa80164-773a3ea0-35d24a71-2fd901c7" xsi:type="instance:XMLLink" xlink:type="simple"/> </types:point> </types:link>

Page 32: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Exercise• What would the diff look like assuming no replacements? • Don’t worry about xml syntax, just list entities in plain text. (e.g. removeList: ARDSData… addList: GPSData,…)

Target Display for customer A

MapDisplay

ARDS Data

EntityControl

FeatureSet

Target Display for customer B

MapDisplay

GPS Data

Logger

FileAccess

EntitySelection

FeatureSet

Page 33: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Thank you

Page 34: Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van.

Exercise• What would the replacement sets be for the following?

Target Display for customer B

MapDisplay

GPS Data

Logger

FileAccess

EntitySelection

FeatureSet

Target Display for customer C

MapDisplay

DistanceCalc

GPS Data


Recommended