SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Pattern-driven Reuse in Architecture-centric
            Welcome
      Evolution for Service Software
        Aakash Ahmad, Pooyan Jamshidi and Claus Pahl
   Presentation Title
      [ahmad.aakash|pooyan.jamshidi|claus.pahl]@computing.dcu.ie


              Software and System Engineering group
           http://www.computing.dcu.ie/~cpahl/sse-group.htm
           School of Computing, Dublin City University, Ireland




                                            THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Agenda
        - Evolution in Service-driven Architectures

        - Related Research - Patterns and Evolution

        - Change Pattern to guide Architecture Evolution

        - Architecture Evolution-case for EBPP

        - Pattern-based Architecture Evolution

        - Experimental Analysis & Evaluation

        - Conclusions & Outlook

                                                                                                  2
LERO© 2010                                       THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Evolution in Service-driven Architectures
Service-Oriented Architecture (SOA) is a business-centric, architectural approach to model
business processes as technical software services to develop enterprise software.

     - Service components as the core computational entities (atomic or composite)
     - Connectors to establish service-level interconnections (association, composition etc.)
     - Configurations to allow topological configuration of components and connectors

Evolution in an SOA goes beyond a more conventional addition or removal of individual
components and connectors.

     - Process-centric change in terms of integration, replacement, decomposition etc.

     - Process aspects of change management requires an explicit specification of source
           and evolved architecture model with appropriate steps to complete the transition.


                                                                                                     3
LERO© 2011                                          THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
The needs for Reuse in Service Architecture Evolution
A continuous change in business and technical requirements lead towards frequent
maintenance and evolution cycles in service software.




     …community wide efforts are required to develop processes, framework and
     patterns etc., to enable systematic maintenance an explicit evolution for SOAs …
     [MESOA 07, 08, 09, 10]



                                                                                                    4
LERO© 2011                                         THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Related Research - Patterns and Evolution
              Evolution in SOAs?                             Patterns in Architectural Abstractions?
              Evolution1Patterns                                  Process Change Patterns
      Repository                   Paths                              Process-centric Evolution


     Evolution Shelf          Evolution Styles              Process Change             Process Mining




                                            MESOA’07’08’09’10


                                    Maintenance, Evolution, Adaptation
                                      Reuse of Evolution in SOAs
                                                                                                        5
LERO© 2011                                             THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Change Patterns to guide Architecture Evolution
Central Hypothesis: The application of change patterns to architectural transformation supports potential
   reuse in architecture-centric software evolution.


  Pattern Identification – recurring sequences from Architecture Change Logs [IWSSA’12]
  Pattern Specification – once-off formal specification in Pattern Catalogue [SHARK’12]
  Pattern Instantiation – multiple instantiations to support pattern-based reuse in evolution.

                 Pattern-based Evolution                                    Benefits for Pattern-based Reuse




                                                                                                           6
 LERO© 2011                                               THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
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© 2011
                                                                                                      7
                                                     THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Graph-based Change Pattern Notation
   Pattern Specification – as an attributed typed Graph (.GML) notation.

   Pattern Storage – Graph databse using Neo4j graph tuples.




LERO© 2011
                                                                                                8
                                               THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Architecture Evolution Case for EBPP
                            Evolution Use-case – Component Integration
                            Inclusion of Customer debt management in existing architecture
                             - Pre-conditions: architectural context before evolution
                             - Operationsliastion : individual change instances
                             - Postconditions : architectural context after evolution




                                                                                         9
LERO© 2011                              THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Pattern-based Architecture Evolution
             Step 1: Architecture Change Specification.
             Step 2: Change Pattern Retrieval
             Step 3: Change Pattern Instantiation




                                                                                                   10
LERO© 2010                                        THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 1: Change Specification
  A declarative specification allows syntactical context of architectural change:
      i) Source Architecture Model (GS)
     ii) Architectural Constraints as pre- and post-conditions (PRE, POST ∈ [CNS])
    iii) Architecture Elements (AE) that need to evolved such that AE ∈ GS.

                Context Constraints: Gs inv, pre, post -- Constraints specification on architecture model

                -- Invarinats for structural integrity of component and connector

                 inv: Constraints.INV -> forAll(Component.hasPORT >= 1)



                -- Preconditions to specify existence of architecture elements before evolution

                  pre: Constraints.PRE -> exists(Component = ‘BillerApp’)

                 pre: Constraints.PRE -> exists(Connector(BillerApp, custBill) | Connector = ‘billingData’)



                -- Post to specify existence of architecture elements after evolution

                 post: Constraints.POST-> exists(Component = ‘BillerApp’)

                  post: Constraints.POST -> exists(Component = ‘custBill’)

                  post: Constraints.POST -> exists(Connector(billType, custBill) | Connector = ‘getType’)


                              OCL-based Constraints Specification on Architecture Models

                                                                                                                                         11
LERO© 2010                                                                              THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 2: Change Pattern Retrieval
                                   (Root) <relatesTo> [Nodes] :
(ChangePattern) <isComposedOf, ConstrainedBy, Evolves> [Operators | Constraints | ArchitectureModel]


 Query - Which change pattern(s) allow integration of a mediator component among two directly connected
 components?
                  01: START pattern = node(ChangePattern)

                  02: MATCH (pattern) – [:ConstrainedBy] - > (Constraints)

                  03:                   – [:Composedof] - > (Operators)

                  04: WHERE Operators IS NOT Null

                  05: RETURN ChangPattern.name, ChangePattern.intent, Operators.operatorType


                 Listing: Cypher Query to Retrieve Pattern Name, Intent and Operationalisation




        START - command to set the primary node(s),
        MATCH - based on user-specified change constraints respectively.
        WHERE - allows for additional conditional checking, while
        RETURN - provides the gathered results.

                                                                                                                   12
LERO© 2010                                                        THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 3: Change Pattern Instantiation

                                                                                               
                                                                                                     
                                    
                                                                                             




- Pattern Instantiation                                            




- Addition                         ms : S  GS                                          mt : T  GT
              ∈
Add<billType • CMP>;
Add<billingType ∈ CON>;
                                                          mI : I  GI
Add<getType ∈ CON>

- Removal
 Rem<billingData ∈ CON>.




                                                     GS S GI T GT
                                                            

                                                                                                          13
LERO© 2010                                       THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Experimental Analysis & Evaluation


   1 Scenario-based Evaluation
      - EBPP & TRS Evolution Cases
     - Pattern Types & Adequacy




  2 Prototype-based Validation
     - Automated Pattern-based Evolution
    - Survey & Usability Analysis




                                                                                            14
LERO© 2010                                 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Recap
Discover Evolution Pattern

- prototype: G-Pride




                                                                         Pat-Evol Project
Maintain Pattern Library

- prototype: Pat-Lib




Reuse Change Execution

- prototype: Pat-Evol




                             THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Thank you for your attention.




                                                                                 16
LERO© 2011                      THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Más contenido relacionado

Similar a Pattern-based Evolution

Architecture Knowledge
Architecture KnowledgeArchitecture Knowledge
Architecture KnowledgeAakash Ahmad
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Malone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationMalone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationThanapan Ittisakulchai
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsHenry Muccini
 
Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 Defining and Evaluating the Usability of CMS - Saurabh Kudesia   Defining and Evaluating the Usability of CMS - Saurabh Kudesia
Defining and Evaluating the Usability of CMS - Saurabh Kudesia STC India UX SIG
 
Oracle soa online training in uk,usa and india
Oracle soa online training in uk,usa and indiaOracle soa online training in uk,usa and india
Oracle soa online training in uk,usa and indiaalmaandrea
 
Innovative Marriage of Security and Performance in SOA Based Dynamic Enterprises
Innovative Marriage of Security and Performance in SOA Based Dynamic EnterprisesInnovative Marriage of Security and Performance in SOA Based Dynamic Enterprises
Innovative Marriage of Security and Performance in SOA Based Dynamic EnterprisesDr. Mehmet Yildiz
 
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and MethodologyWSO2
 
ODI 11G ONLINE TRAINING
ODI 11G ONLINE TRAININGODI 11G ONLINE TRAINING
ODI 11G ONLINE TRAININGescalglobal
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
SOA Solution Patterns
SOA Solution PatternsSOA Solution Patterns
SOA Solution PatternsWSO2
 
Paremus service fabric
Paremus service fabricParemus service fabric
Paremus service fabricpjhInovex
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Shameer Thaha Koya
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinsonNASAPMC
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinsonNASAPMC
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David AmellerDavid Ameller
 
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...Aakash Ahmad
 

Similar a Pattern-based Evolution (20)

Architecture Knowledge
Architecture KnowledgeArchitecture Knowledge
Architecture Knowledge
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Malone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationMalone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementation
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
Framework
FrameworkFramework
Framework
 
Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 Defining and Evaluating the Usability of CMS - Saurabh Kudesia   Defining and Evaluating the Usability of CMS - Saurabh Kudesia
Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 
Oracle soa online training in uk,usa and india
Oracle soa online training in uk,usa and indiaOracle soa online training in uk,usa and india
Oracle soa online training in uk,usa and india
 
Innovative Marriage of Security and Performance in SOA Based Dynamic Enterprises
Innovative Marriage of Security and Performance in SOA Based Dynamic EnterprisesInnovative Marriage of Security and Performance in SOA Based Dynamic Enterprises
Innovative Marriage of Security and Performance in SOA Based Dynamic Enterprises
 
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
 
ODI 11G ONLINE TRAINING
ODI 11G ONLINE TRAININGODI 11G ONLINE TRAINING
ODI 11G ONLINE TRAINING
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
SOA Solution Patterns
SOA Solution PatternsSOA Solution Patterns
SOA Solution Patterns
 
Paremus service fabric
Paremus service fabricParemus service fabric
Paremus service fabric
 
Sca
ScaSca
Sca
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinson
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinson
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David Ameller
 
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Pattern-based Evolution

  • 1. Pattern-driven Reuse in Architecture-centric Welcome Evolution for Service Software Aakash Ahmad, Pooyan Jamshidi and Claus Pahl Presentation Title [ahmad.aakash|pooyan.jamshidi|claus.pahl]@computing.dcu.ie Software and System Engineering group http://www.computing.dcu.ie/~cpahl/sse-group.htm School of Computing, Dublin City University, Ireland THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 2. Agenda - Evolution in Service-driven Architectures - Related Research - Patterns and Evolution - Change Pattern to guide Architecture Evolution - Architecture Evolution-case for EBPP - Pattern-based Architecture Evolution - Experimental Analysis & Evaluation - Conclusions & Outlook 2 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 3. Evolution in Service-driven Architectures Service-Oriented Architecture (SOA) is a business-centric, architectural approach to model business processes as technical software services to develop enterprise software. - Service components as the core computational entities (atomic or composite) - Connectors to establish service-level interconnections (association, composition etc.) - Configurations to allow topological configuration of components and connectors Evolution in an SOA goes beyond a more conventional addition or removal of individual components and connectors. - Process-centric change in terms of integration, replacement, decomposition etc. - Process aspects of change management requires an explicit specification of source and evolved architecture model with appropriate steps to complete the transition. 3 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 4. The needs for Reuse in Service Architecture Evolution A continuous change in business and technical requirements lead towards frequent maintenance and evolution cycles in service software. …community wide efforts are required to develop processes, framework and patterns etc., to enable systematic maintenance an explicit evolution for SOAs … [MESOA 07, 08, 09, 10] 4 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 5. Related Research - Patterns and Evolution Evolution in SOAs? Patterns in Architectural Abstractions? Evolution1Patterns Process Change Patterns Repository Paths Process-centric Evolution Evolution Shelf Evolution Styles Process Change Process Mining MESOA’07’08’09’10 Maintenance, Evolution, Adaptation Reuse of Evolution in SOAs 5 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 6. Change Patterns to guide Architecture Evolution Central Hypothesis: The application of change patterns to architectural transformation supports potential reuse in architecture-centric software evolution. Pattern Identification – recurring sequences from Architecture Change Logs [IWSSA’12] Pattern Specification – once-off formal specification in Pattern Catalogue [SHARK’12] Pattern Instantiation – multiple instantiations to support pattern-based reuse in evolution. Pattern-based Evolution Benefits for Pattern-based Reuse 6 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 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© 2011 7 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 8. Graph-based Change Pattern Notation Pattern Specification – as an attributed typed Graph (.GML) notation. Pattern Storage – Graph databse using Neo4j graph tuples. LERO© 2011 8 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 9. Architecture Evolution Case for EBPP Evolution Use-case – Component Integration Inclusion of Customer debt management in existing architecture - Pre-conditions: architectural context before evolution - Operationsliastion : individual change instances - Postconditions : architectural context after evolution 9 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 10. Pattern-based Architecture Evolution Step 1: Architecture Change Specification. Step 2: Change Pattern Retrieval Step 3: Change Pattern Instantiation 10 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 11. Step 1: Change Specification A declarative specification allows syntactical context of architectural change: i) Source Architecture Model (GS) ii) Architectural Constraints as pre- and post-conditions (PRE, POST ∈ [CNS]) iii) Architecture Elements (AE) that need to evolved such that AE ∈ GS. Context Constraints: Gs inv, pre, post -- Constraints specification on architecture model -- Invarinats for structural integrity of component and connector inv: Constraints.INV -> forAll(Component.hasPORT >= 1) -- Preconditions to specify existence of architecture elements before evolution pre: Constraints.PRE -> exists(Component = ‘BillerApp’) pre: Constraints.PRE -> exists(Connector(BillerApp, custBill) | Connector = ‘billingData’) -- Post to specify existence of architecture elements after evolution post: Constraints.POST-> exists(Component = ‘BillerApp’) post: Constraints.POST -> exists(Component = ‘custBill’) post: Constraints.POST -> exists(Connector(billType, custBill) | Connector = ‘getType’) OCL-based Constraints Specification on Architecture Models 11 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 12. Step 2: Change Pattern Retrieval (Root) <relatesTo> [Nodes] : (ChangePattern) <isComposedOf, ConstrainedBy, Evolves> [Operators | Constraints | ArchitectureModel] Query - Which change pattern(s) allow integration of a mediator component among two directly connected components? 01: START pattern = node(ChangePattern) 02: MATCH (pattern) – [:ConstrainedBy] - > (Constraints) 03: – [:Composedof] - > (Operators) 04: WHERE Operators IS NOT Null 05: RETURN ChangPattern.name, ChangePattern.intent, Operators.operatorType Listing: Cypher Query to Retrieve Pattern Name, Intent and Operationalisation START - command to set the primary node(s), MATCH - based on user-specified change constraints respectively. WHERE - allows for additional conditional checking, while RETURN - provides the gathered results. 12 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 13. Step 3: Change Pattern Instantiation           - Pattern Instantiation   - Addition ms : S  GS mt : T  GT ∈ Add<billType • CMP>; Add<billingType ∈ CON>; mI : I  GI Add<getType ∈ CON> - Removal Rem<billingData ∈ CON>. GS S GI T GT   13 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 14. Experimental Analysis & Evaluation 1 Scenario-based Evaluation - EBPP & TRS Evolution Cases - Pattern Types & Adequacy 2 Prototype-based Validation - Automated Pattern-based Evolution - Survey & Usability Analysis 14 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 15. Recap Discover Evolution Pattern - prototype: G-Pride Pat-Evol Project Maintain Pattern Library - prototype: Pat-Lib Reuse Change Execution - prototype: Pat-Evol THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 16. Thank you for your attention. 16 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE