1 / 34

Christopher Van der Westhuizen and Andre van der Hoek Presented by Jaime Acosta

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. Problems. Capturing architectural changes ADLs with version support ASCII diff XML diff

ciara
Télécharger la présentation

Christopher Van der Westhuizen and Andre van der Hoek Presented by Jaime Acosta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Understanding and Propagating Architectural ChangesHow can we manage changes in product line architectures? Christopher Van derWesthuizen and Andre van derHoek 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 Target Display MapDisplay MapDisplay GPS Data GPS Data EntitySelection Logger DistanceCalc FeatureSet FileAccess

  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. Target Display for customer C MapDisplay GPS Data DistanceCalc Target Display for customer B MapDisplay GPS Data EntitySelection Logger FeatureSet FileAccess Example – an issues in product line architectures Target Display for customer A MapDisplay ARDS Data EntityControl FeatureSet

  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. Contribution 2: Differencing Algorithm • Must describe • Adds • Removes • Replacements

  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. Contribution 2: Differencing Algorithm – Adds/Removes • Example

  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. Contribution 2: Differencing Algorithm - Replacements • Example

  23. Contribution 3: Propagation • 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?

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

  25. Contribution 3: Propagation

  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) <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>

  30. 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>

  31. 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>

  32. Target Display for customer B MapDisplay GPS Data EntitySelection Logger FeatureSet FileAccess 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

  33. Thank you

  34. Target Display for customer C MapDisplay GPS Data DistanceCalc Target Display for customer B MapDisplay GPS Data EntitySelection Logger FeatureSet FileAccess Exercise • What would the replacement sets be for the following?

More Related