SlideShare a Scribd company logo
1 of 13
Download to read offline
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
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
     Conclusions



Lero© 2013
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
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
                                                     Modify


Lero© 2013
Research Problem and Challenges

Research Problem: How to foster an explicit evolution-centric knowledge that enables
modeling 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 preparation




Research Challenges:
 - Empirical acquisition of reuse Knowledge and Expertise
 - Application of reuse knowledge to evolve CBSAs


Lero© 2013
Proposed Solution
Architecture Change Mining as a complementary and integrated
phase to Architecture Change Execution

1.       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 Patterns
Lero© 2013
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
Pat-Evol - Change Pattern Language for Evolution in CBSAs

The pattern language represents a formalised collection of architecture change patterns
to 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 Language




Lero© 2013
Pattern Instances in the Language

                                 Pattern Selection with Question Option
                                 Criteria (QOC) Methodology




                                Integrate(PRE, (C1, CM, C2), POST)




Lero© 2013
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 C2




Lero© 2013
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
Recap

             Discover Evolution Pattern

             - prototype: G-Pride




                                          Pat-Evol Project
             Maintain Pattern Library

             - prototype: Pat-Lib




             Reuse Change Execution

             - prototype: Pat-Evol




Lero© 2013
Thank you for your attention.




Lero© 2013

More Related Content

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

M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
ADC Austin Tech
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
MDDAY11
 
Leap isec 2011
Leap isec 2011Leap isec 2011
Leap isec 2011
ClarkTony
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1
vciampa
 
BALAJI K _Resume
BALAJI K _ResumeBALAJI K _Resume
BALAJI K _Resume
Balaji K
 

Similar to PatEvol - A Pattern Language for Evolution in Component-based Software Architectures (20)

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
PLM - ERP integration
PLM - ERP integrationPLM - ERP integration
PLM - ERP integration
 
ESB Concepts
ESB ConceptsESB Concepts
ESB Concepts
 
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
10.1.1.65.2852
10.1.1.65.285210.1.1.65.2852
10.1.1.65.2852
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
 
Course Agenda
Course AgendaCourse Agenda
Course Agenda
 
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
 
dep_meshworks_brochure_2015
dep_meshworks_brochure_2015dep_meshworks_brochure_2015
dep_meshworks_brochure_2015
 
ECSA 2011 (Navarro)
ECSA 2011 (Navarro)ECSA 2011 (Navarro)
ECSA 2011 (Navarro)
 
Leap isec 2011
Leap isec 2011Leap isec 2011
Leap isec 2011
 
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...
ABC Architecture  A New Approach To Build Reusable And Adaptable Business Tie...ABC Architecture  A New Approach To Build Reusable And Adaptable Business Tie...
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1
 
Assesment process model
Assesment process modelAssesment process model
Assesment process model
 
Utilizing Kubotek ECO Manager Product Suite to Reduce Engineering Costs
Utilizing Kubotek ECO Manager Product Suite to Reduce Engineering CostsUtilizing Kubotek ECO Manager Product Suite to Reduce Engineering Costs
Utilizing Kubotek ECO Manager Product Suite to Reduce Engineering Costs
 
BALAJI K _Resume
BALAJI K _ResumeBALAJI K _Resume
BALAJI K _Resume
 
Using automated change communication software to improve productivity and re...
 Using automated change communication software to improve productivity and re... Using automated change communication software to improve productivity and re...
Using automated change communication software to improve productivity and re...
 

Recently uploaded

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

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

  • 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. 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  Conclusions Lero© 2013
  • 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. 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 Modify Lero© 2013
  • 5. Research Problem and Challenges Research Problem: How to foster an explicit evolution-centric knowledge that enables modeling 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 preparation Research Challenges: - Empirical acquisition of reuse Knowledge and Expertise - Application of reuse knowledge to evolve CBSAs Lero© 2013
  • 6. Proposed Solution Architecture Change Mining as a complementary and integrated phase to Architecture Change Execution 1. 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 Patterns Lero© 2013
  • 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. Pat-Evol - Change Pattern Language for Evolution in CBSAs The pattern language represents a formalised collection of architecture change patterns to 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 Language Lero© 2013
  • 9. Pattern Instances in the Language Pattern Selection with Question Option Criteria (QOC) Methodology Integrate(PRE, (C1, CM, C2), POST) Lero© 2013
  • 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 C2 Lero© 2013
  • 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. Recap Discover Evolution Pattern - prototype: G-Pride Pat-Evol Project Maintain Pattern Library - prototype: Pat-Lib Reuse Change Execution - prototype: Pat-Evol Lero© 2013
  • 13. Thank you for your attention. Lero© 2013