Using Evolution Patterns to Evolve Software Architectures
description
Transcript of Using Evolution Patterns to Evolve Software Architectures
![Page 1: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/1.jpg)
Joint work with Dalila Tamzalit, Université de Nantes, France
Using Evolu,on Pa/erns to Evolve So4ware Architectures
Published in IEEE ECBS 2010, Oxford
With help of Aurélien Lansmanne for the implementaMon
![Page 2: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/2.jpg)
3
Context : So4ware Architectures
SoOware development process – Requirements
– Architecture – Design – ImplementaMon
Architectural descripMons – Capture strategic decisions and raMonale at a high-‐level of abstracMon
– Provide a basis for detailed design – Are essenMal for expressing and constraining large-‐scale and criMcal systems
![Page 3: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/3.jpg)
Université de Mons 4
Context : So4ware Architectures IEEE/ISO/IEC Standard 1471-‐2000: Recommended Prac,ce
Component & connector viewpoint
![Page 4: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/4.jpg)
5
Context : So4ware Architectures
• C&C viewpoint • Expresses the system structure in terms of components (with ports) related by connectors (with roles)
• Architectural DescripMon Language (ADL) • Provides the syntax and semanMcs for the C&C viewpoint
• Example • e-‐shop expressed in COSA ADL
![Page 5: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/5.jpg)
Context : Architectural Styles
• An architectural style captures recurring architectural paZerns
• Examples • Pipe&Filter, Publish-‐Subscribe, Peer-‐to-‐peer, n-‐Mered, …
6
![Page 6: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/6.jpg)
Context : Architectural Styles
• An architectural style captures recurring architectural paZerns
• Examples • Client-‐Server
7
![Page 7: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/7.jpg)
8
Goal : Architectural Evolu,on
• SoOware evoluMon – Is inevitable: Perpetual challenge for large-‐scale systems
– Is difficult and expensive • Systems tend to increase in complexity • Several stakeholders, several representaMons • Difficult to manage, lack of abstracMon
– Needs to be liOed • Support for evoluMon at architectural level
– Needs to be automated • Needs to be built in the language (ADL) and its supporMng tools
![Page 8: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/8.jpg)
9
Goal : Architecture restructuring
• Apply ideas of “program refactoring” at architectural level • Improve architectural structure by automated transformaMons
• Examples • Transform legacy systems to client-‐server systems, to N-‐Mered systems, to SOA, …
• Introducing an architectural style to an exisMng architecture – Goal
• Impose addiMonal structural constraints
• While preserving the exisMng funcMonality
![Page 9: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/9.jpg)
Université de Mons
• Original C&C architecture e-‐shop expressed using COSA ADL
Goal : Architecture restructuring Example: from monolithic to client-‐server
10
![Page 10: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/10.jpg)
Université de Mons
Goal : Architecture restructuring Example: from monolithic to client-‐server
11
![Page 11: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/11.jpg)
12
Approach
Formal valida,on – Assess feasibility using graph transformaMon theory – Provide proof-‐of-‐concept using AGG tool
Prac,cal valida,on – Extend exisMng ADL (COSA) with support for evoluMon – Implement the formal ideas in COSABuilder tool
Case study – Convert a monolithic architecture (E-‐shop) in a client-‐server architecture by introducing architectural style
![Page 12: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/12.jpg)
Formal valida,on
• Use graph transformaMon theory • Specify proof-‐of-‐concept in AGG tool
• Represent ADL metamodel as a type graph • Represent addiMonal constraints as graph invariants • Represent architecture as a graph conforming to this type graph
• Represent architectural style • Represent architectural evoluMon steps as graph transforma1on rules
• Use formal analysis capabiliMes of AGG
13
![Page 13: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/13.jpg)
Formal Valida,on
• Represent (part of ) COSA ADL metamodel as a type graph • Architectural concepts: component, configuraMon, (provided or required) port or role, connector, binding, aZachment
14
![Page 14: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/14.jpg)
Formal Valida,on
• Represent architecture as a graph conform to this type graph
15
![Page 15: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/15.jpg)
Formal Valida,on
• Represent (part of ) COSA ADL metamodel as a type graph • Derived edge types: connectsTo and connector
16
![Page 16: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/16.jpg)
Formal Valida,on
• Represent (part of ) COSA ADL metamodel as a type graph • Graph invariants
• A component cannot be connected to, or contained in, itself.
• A uses dependency is only allowed between different ports belonging to the same component.
• Two components cannot be at the same Mme connected to, and contained, in one another.
• A binding is only allowed between ports of the same type belonging to a component and one of its subcomponents.
17
![Page 17: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/17.jpg)
Formal Valida,on • Express the architectural style as extension of type graph
• with addiMonal graph constraints – Only Client and Server are allowed as top-‐level components – A Client component must always be connected to Server via a connectsTo-‐link
18
![Page 18: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/18.jpg)
Formal Valida,on • Represent evoluMon operaMons as graph transformaMon rules
19
![Page 19: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/19.jpg)
Formal Valida,on • Represent evoluMon operaMons as graph transformaMon rules
20
![Page 20: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/20.jpg)
Formal Valida,on • Ensure preservaMon of internal structural dependencies
21
![Page 21: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/21.jpg)
Université de Mons
Evolu,on pa/ern mandatory phase
![Page 22: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/22.jpg)
Université de Mons
Evolu,on pa/ern manual phase
![Page 23: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/23.jpg)
24
Formal Valida,on
• Use transformaMon analysis to detect potenMal problems • Based on criMcal pair analysis of parallel conflicts and sequenMal dependencies
![Page 24: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/24.jpg)
Prac,cal Valida,on
• COSABuilder • Eclipse plug-‐in supporMng the COSA ADL • Developed @ Modal team -‐ University of Nantes
• Object-‐oriented framework, extensible with new concepts
• Extend COSABuilder with automated support for evoluMon • Masters thesis of Aurélien Lansmanne
![Page 25: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/25.jpg)
Prac,cal Valida,on
• Extend COSABuilder with evoluMon support • All architectural evoluMon operaMons are reified in the ADL • EvoluMon paZerns expressed in terms of primiMve operaMons
• GUI support for selecMng and applying evoluMon paZerns and operaMons
• Support for verifying • the contraints imposed by an architectural style
• that internal dependencies are preserved by evoluMon
![Page 26: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/26.jpg)
Prac,cal Valida,on
• Applying an evoluMon operaMon (part 1)
![Page 27: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/27.jpg)
Prac,cal Valida,on
• Applying an evoluMon operaMon (part 2)
![Page 28: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/28.jpg)
Prac,cal Valida,on
• Applying an evoluMon paZern to introduce the Client-‐Server architectural style
![Page 29: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/29.jpg)
Prac,cal Valida,on
• Verifiying conformance of an architecture to the Client-‐Server architectural style
(1)
(2)
![Page 30: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/30.jpg)
Prac,cal Valida,on
• Verifiying conformance of an architecture to the Client-‐Server architectural style
(1)
(2)
![Page 31: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/31.jpg)
32
Future Work
• SupporMng mutlipe ADLs, mulMple viewpoints, mulMple styles
• Carrying out more case studies
• Expressing non-‐structural aspects of an architectural descripMon
• Considering other evoluMon scenarios • E.g. changing a style to another one
• Extending ADLs with first-‐class support for evoluMon
![Page 32: Using Evolution Patterns to Evolve Software Architectures](https://reader031.fdocuments.in/reader031/viewer/2022020110/549bf86aac7959f12a8b45e5/html5/thumbnails/32.jpg)
33
Future Work con,nued
• Dealing with co-‐evoluMon
• But also with requirements, run-‐Mme, language evoluMon
http://ComputingNow.computer.org.