Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van."— Presentation transcript:

1 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

2 Problems Capturing architectural changes – ADLs with version support – ASCII diff – XML diff Understanding differences introduced – Propagating changes in similar systems

3 Example – Target Display – system changes Target Display MapDisplay DistanceCalc GPS Data Target Display MapDisplay GPS Data Logger FileAccess EntitySelection FeatureSet

4 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

5 Problems Effort Time Cost Expertise

6 Alleviations Automated support – Recognition – Propogation Where has this problem been tackled before?

7 Solution Configuration Management – Understanding nature of src code changes – Propagate changes to other versions of systems Requires – Differencing – Merge

8 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

9 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

10 Contributions Representation for product line architectures – xADL schema Algorithm for Difference – Based on xADL schema Algorithm for Merge – Based on xADL schema

11 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

12 Contribution 1: Representation of Product Line Architectures xADL – Authors extension to allows documenting changes

13 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

14 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

15 Must describe – Adds – Removes – Replacements Contribution 2: Differencing Algorithm

16 Contribution 2: Differencing Algorithm – Adds/Removes Input: – Product line architecture 1 – Product line architecture 2 Output: – XML representing architectural differences Additions and Removals

17 Contribution 2: Differencing Algorithm – Adds/Removes

18 Example Contribution 2: Differencing Algorithm – Adds/Removes

19 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

20 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

21 Contribution 2: Differencing Algorithm - Replacements

22 Example Contribution 2: Differencing Algorithm - Replacements

23 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

24 Input: – Diff – Target architecture Output: – Target architecture with enhancements Contribution 3: Propagation

25

26 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?

27 Future Work Graphical Interface Differencing and merging for dynamic updates Runtime optimizations

28 Examples of xADL

29 Examples of xADL (component) TargetSystem1 GPSData gpsIfx none

30 Examples xADL (connector) connector1 connector1Ifx1 none connector1Ifx2 none

31 Examples of xADL (link) gpsConnLink

32 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

33 Thank you

34 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


Download ppt "Understanding and Propagating Architectural Changes How can we manage changes in product line architectures? Christopher Van der Westhuizen and Andre van."

Similar presentations


Ads by Google