PatEvol – A Pattern Language for Evolution  in Component-Based Software Architectures             Aakash Ahmad, Pooyan Jam...
Agenda     Architecture-Centric Software Evolution     Evolution in Component-based Software Architectures     Research...
Architecture-Centric Software Evolution   Software Architecture represents the blue-print of a software as      topologic...
Evolution in Component-based Software Architectures A. Component-Based Software Architecture (CBSA) 1.     Component – Com...
Research Problem and ChallengesResearch Problem: How to foster an explicit evolution-centric knowledge that enablesmodelin...
Proposed SolutionArchitecture Change Mining as a complementary and integratedphase to Architecture Change Execution1.     ...
The Anatomy of Pattern-based Architecture Evolution   Change pattern provides a generic, first class abstraction (that can...
Pat-Evol - Change Pattern Language for Evolution in CBSAsThe pattern language represents a formalised collection of archit...
Pattern Instances in the Language                                 Pattern Selection with Question Option                  ...
Change Patterns to guide Architecture Evolution                Pattern Name          Consequences          Pattern Intent ...
Change Anti-Patterns      Anti-pattern I – Orphan Child      •      Prevention 1 – Kill the child if parent is dead).     ...
Recap             Discover Evolution Pattern             - prototype: G-Pride                                          Pat...
Thank you for your attention.Lero© 2013
Upcoming SlideShare
Loading in …5
×

PatEvol - A Pattern Language for Evolution in Component-based Software Architectures

520 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
520
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PatEvol - A Pattern Language for Evolution in Component-based Software Architectures

  1. 1. PatEvol – A Pattern Language for Evolution in Component-Based Software Architectures Aakash Ahmad, Pooyan Jamshidi, Claus Pahl, Fawad Khaliq Lero – the Irish Software Engineering Research Centre School of Computing, Dublin City University, Ireland.Lero© 2013
  2. 2. Agenda  Architecture-Centric Software Evolution  Evolution in Component-based Software Architectures  Research Problem and Challenges  Proposed Solution  The Anatomy of Pattern-based Architecture Evolution  Pat-Evol - Change Pattern Language for Evolution in CBSAs  Change Patterns to guide Architecture Evolution  Change Anti-Patterns  ConclusionsLero© 2013
  3. 3. Architecture-Centric Software Evolution  Software Architecture represents the blue-print of a software as topological configuration of computational components and connectors that enable component-level interconnections. [ISO/IEC/IEEE 42010 Standard]  Software Evolution deals with adapting a software to changing requirements and operating environment by means of addition, removal and modification of software artifacts. [ACM/IEEE Software Engineering Curriculum, 2004]  Reuse-driven Architecture Evolution empowers the role of software architect by promoting generic and reusable off-the-shelf evolution expertise.Lero© 2013
  4. 4. Evolution in Component-based Software Architectures A. Component-Based Software Architecture (CBSA) 1. Component – Computation, Data Stores, Message Processor, […] 2. Connector – Component Interconnection, Message Passing, […] 3. Configuration – topology of components and connectors to model architecture. <<Composite>> <<atomic>> 2 Component Port Connector 1 Endpoints [ISO/IEC/IEEE 42010 Standard] Configuration 3 B. Evolution in CBSAs [Add, Remove, Modify] <Components, Connctor, Configurations> Source CM Evolved Architecture C1 C2 Add Remove Architecture C1 C2 ModifyLero© 2013
  5. 5. Research Problem and ChallengesResearch Problem: How to foster an explicit evolution-centric knowledge that enablesmodeling and executing reuse of frequent evolution tasks in CBSAs? “[…] in software architectures, evolution-centric reuse knowledge and expertise are expressed as Styles and Patterns etc. that offer repeatable change implementation expertise; that can be shared and reused as a solution to frequent (architecture) evolution problems” Our Systematic Literature Reviews: [1] A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research, in CSMR’2013. [2]. Reuse-driven Evolution and Adaptation in Software Architectures – A Systematic Literature Review, in preparationResearch Challenges: - Empirical acquisition of reuse Knowledge and Expertise - Application of reuse knowledge to evolve CBSAsLero© 2013
  6. 6. Proposed SolutionArchitecture Change Mining as a complementary and integratedphase to Architecture Change Execution1. Change Mining (Patterns Discovery) 2. Change Execution (Pattern Application) Architecture Change Logs A Change C1 C2 Specification Source A B Operationl Architecture Change Reuse Change Operationalisation Dependencies B Architecture C Change Patterns Collection of Patterns CM Change C1 C2 Execution C Evolved Architecture Collection of PatternsLero© 2013
  7. 7. The Anatomy of Pattern-based Architecture Evolution Change pattern provides a generic, first class abstraction (that can be operationalised and parameterised) to support potential reuse in architectural change execution. 𝐼𝑁𝑉(𝑂𝑃𝑅𝑛(𝑎𝑒𝑚∈𝐴𝐸)) PAT<name, intent>: PRE(aem ∈ AE) POST(ae′m ∈ AE).Lero© 2013
  8. 8. Pat-Evol - Change Pattern Language for Evolution in CBSAsThe pattern language represents a formalised collection of architecture change patternsto map problem-solution view of the domain (i.e; family of evolving CBSAs). Language Vocabulary Language Grammar Language Sequencing Pattern Classification Pattern Model Pattern Classification - Pattern Instances - Pattern Composition - Pattern Selection - Pattern Variants - Semantic Relations - Pattern Relations Graph-based Modeling of Pattern LanguageLero© 2013
  9. 9. Pattern Instances in the Language Pattern Selection with Question Option Criteria (QOC) Methodology Integrate(PRE, (C1, CM, C2), POST)Lero© 2013
  10. 10. Change Patterns to guide Architecture Evolution Pattern Name Consequences Pattern Intent Integrates a component CM Component Mediation among two or more directly (CM , <C1, CM, C2>) connected components C1, C2 Functional Slicing Splits a component C in two or (C, <C1, C2>) more components C1, C2 Merge two or more components Functional Unification C1, C2 into a single component (<C1, C2>, C) C. Replace an existing Component Active Displacement C1 with C3 while maintaining (C2:C3, <C1, C2>, <C1, C3>) connection with existing component C2 Child Creation Create a child component x1 (C1, x:C1) inside an atomic Component C1 Move an internal component x Child Adoption from its parent component C1 (x:C1, <C1,x>, <C2, x>) to another component C2 Child Swap Swap an internal component x in (x:C1, y:C2, <C1,x>, <C2, y>) C1 to y in C2Lero© 2013
  11. 11. Change Anti-Patterns Anti-pattern I – Orphan Child • Prevention 1 – Kill the child if parent is dead). • Prevention 2 – Apply the Child Adoption pattern to accommodate an orphan (i.e; adopt the child if parent is dead). Anti-pattern II – Bulky Component Prevention – Apply Functional Slicing pattern to split the parent into fine-grained and specialised components, Figure 4b).Lero© 2013
  12. 12. Recap Discover Evolution Pattern - prototype: G-Pride Pat-Evol Project Maintain Pattern Library - prototype: Pat-Lib Reuse Change Execution - prototype: Pat-EvolLero© 2013
  13. 13. Thank you for your attention.Lero© 2013

×