SlideShare uma empresa Scribd logo
Graph-based Pattern Identification
        Welcome
 from Architecture Change Logs
 Presentation Title
  Aakash Ahmad, Pooyan Jamshidi and Claus Pahl

          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
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 and data stores (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 attributes of change in terms of integration, replacement, decomposition etc.




                                                                                                            2
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]



                                                                                                              3
LERO© 2011                                                   THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Change Patterns to guide Architecture Evolution
Central Hypothesis: A systematic investigation into the history of architectural changes enables discovery
    of recurring operationalisation and patterns that guide architecture change management.

- Change Log: a transparent, centrally manageable repository maintaining traces of evolution over time
- Change Graph: formalising change instances for an automated analysis of operationalisation and dependencies.
                   Pattern-based Evolution                                      Benefits for Pattern-based Reuse




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


     Evolution Shelf                  Evolution Styles                       Process Change Patterns    Process Mining and Evolution




                                                         MESOA’07’08’09’10


                                               Maintenance, Evolution, Adaptation
                                                    Reuse of Evolution in SOAs
                                                                                                                               5
LERO© 2011                                                           THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Log-based Analysis of Architecture Change
Architecture Change Logs (ACL) as a knowledge base provide us with a transparent and centrally
manageable repository by maintaining fine-granular instances of sequential change aggregating over time.

- Adequacy of Change Log Data                                ACL =< AC1,AC2, . . . ,ACN >
    Completeness, Granularity of Change, etc.

- Log Data Classification
   Change Data & Auxiliary Data

- Architecture Change Instances
   EBPP and TRS case studies




                                                                                                          6
 LERO© 2010                                              THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Architecture Evolution Case Study
                                   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




                                                                                                 7
LERO© 2011                                      THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Solution Overview

  1. The Pre-processing Approach
        - Capturing Change Instances
        - Log Data Classification
        - Change Instance Formalisation

  2. Log Data Analysis
       - Change Operationalisation
       - Operational Dependencies
       - Pattern Identification




                                                                                           8
LERO© 2010                                THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Graph-based Formalisation of Change Instances
        - Formalise Change Instances from Log as an Attributed Typed Graph
        - Formal analysis and effiecient processing of significantly large data size
        - Graph-mining as a formal approach to discover operationalisation and patterns




                                                                                                       9
LERO© 2010                                            THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
A
                                                XML Schema

                                        B
                                                Graph Metadata
                                        C
                                                Graph Instance


                                        D
                                                Attributed Nodes


                                         E
                                                Attributed Edges


                                                              10
LERO© 2010   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
                                                                                                            11
                                                           THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Operationalisation and Dependencies in Change Logs
  An effective and potentially reusable solution to recurring architecture evolution problems is a
  consequence of empirical discovery and not a mere invention.

  A pattern can be i) identified as recurrent, ii) specified once and iii) instantiated multiple times
  to support potential reuse in architecture evolution
  1. Operationalisation
     - Atomic
     - Composite
     - Sequential

  2. Dependencies
    - Hierarchical
    - Sequential
    - Order & Inordered
LERO© 2011                                               THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Architecture Change Sequencing




                   Matching Functions
                    - TypeEquv (Sx.77, Sy.313)  return < true >
                    - TypeEquv (Sx, Sy)  return < 1 >
                    - OrdEquv(Sx, Sy)  return < false >




                                                                                                 13
LERO© 2011                                      THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Overview of Pattern Identification Process

Apriori-based approach - Breadth First Search
strategy during each iteration to
    i) Generate pattern candidates (CP)
    ii) Validate pattern candidates from CP’
   iii) Occurance frequency of CP’in GC.



       Graph Objects


   Sequence Length

Sequence Frequencies

                                                                                                 14
LERO© 2011                                      THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 1 : Candidate Generation
                 candidateGeneration()
 1.   Input(s)
      - Change Graph GC,
      - Min Length of Candidate minLen(CP),
      - Max Length of Candidate maxLen(CP)

 2. Processing
     s1: start iteration at root ← GC .getRoot()
     s2: while minLen(CP) ≤ CandidateLength ≤ maxLen(CP)
     s3: get candidate list
     buff(CP ) ← < cp1(n1.n2); cp2(n2.n3);…; cp7(n3:n4:n5)>
     s4: allow node matching [TypeEquv(ni, nj)]
                                      𝑚𝑎𝑡𝑐ℎ                    𝑚𝑎𝑡𝑐ℎ
      nodeMatching(ni, nj) : ni.opr           nj.opr ^ ni.ae           nj.ae

 3. Output(s)
    A list of generated candidates List(CP)




                                                                                                                15
LERO© 2011                                                     THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 2 : Candidate Validation
                candidateValidation()
1. Input(s)
     - Pattern Candidate cp ⊆ GC,
     - Min Length of Candidate minLen(CP),
     - Max Length of Candidate maxLen(CP)

2. Processing
    s1: set isValid ← false
    s2: iterate while node ← 0 to node ≤ cp.length()
    s3: validate if lookUp(cp.node.AE) == true return <true>
    s4: otherwise return <false>

3. Output(s)
    - A boolean <true/false> value indicating a valid/invalid
candidate




                                                                                                          16
 LERO© 2011                                              THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Step 3 : Pattern Matching
                        patternMatch()
1. Input(s)
     - Change Graph GC,
     - Min Length of Candidate minLen(CP),
     - Max Length of Candidate maxLen(CP)

2. Processing
    s1: start iteration at root ← GC .getRoot()
    s2: while minLen(CP) ≤ CandidateLength ≤ maxLen(CP)
    s3: get candidate list
    buff(CP ) ← < cp1(n1.n2); cp2(n2.n3);…; cp7(n3:n4:n5)>
    s4: allow node matching [TypeEquv(ni, nj)]
                                    𝑚𝑎𝑡𝑐ℎ                    𝑚𝑎𝑡𝑐ℎ
    nodeMatching(ni, nj) : ni.opr           nj.opr ^ ni.ae           nj.ae

3. Output(s)
   A list of generated candidates List(CP)




                                                                                                               17
LERO© 2011                                                    THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Identified Pattern Types
 A pre-defined Pattern Classification types CLS =< Inclusion, Exclusion, Replacement >




                                                                                                     18
LERO© 2011                                          THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
An Identified Pattern Instance : Co-related Inclusion




                                                                                Name, Intent, Context

Operationalisation
                                                                                Architecture Elements


                                                                                                 19
   LERO© 2010                                   THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Algorithmic Analysis




   - Linear Growth, Pattern Instances ∝ 1/Frequency
   - Parameterisations Vital for Frequency Threshold, Graph Size, Minimum and Maximum Pattern Lengths.




                                                                                                             20
LERO© 2011                                                  THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Tool Support
                  G-Pride                           Pat-Lib




 Possible Limitations
 - Architecture Type: beyond a pre-defined architecture model is not evaluated yet.

 - Change Anti-patterns: resulting from counter-productive pattern-based evolution.
                                                                                                       21
LERO© 2011                                            THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Future Work
The notion of a change pattern language
 - Semantic relationships among patterns that exist in the catalogue
- Exploiting pattern-level vocabulary to address common evolution tasks.


Architectural transformation by means of instantiating change patterns.
- Allow architects to model and execute generic and potentially reusable solution to recurring architecture
   evolution problems.
- A graph-transformation system to support architecture evolution guided by change patterns.
- A prototype (Pat-Evol) shall allow a experimental data to evaluate the adequacy and applicability of the
   proposed solution in a practical context.



                                                                                                              22
 LERO© 2011                                                  THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
Thank you for your attention.




                                                                                 23
LERO© 2011                      THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Mais conteúdo relacionado

Semelhante a Graph Pattern Identification

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
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
 
EasySOA: A New Approach to SOA
EasySOA: A New Approach to SOAEasySOA: A New Approach to SOA
EasySOA: A New Approach to SOANuxeo
 
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
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)David Rosenblum
 
20120716 l2 soa for enterprise-og-wsh-conf
20120716 l2 soa for enterprise-og-wsh-conf20120716 l2 soa for enterprise-og-wsh-conf
20120716 l2 soa for enterprise-og-wsh-confSUNDAR RAMANATHAN
 
20120716 L2 Soa For Enterprise Og Wsh Conf
20120716 L2 Soa For Enterprise Og Wsh Conf20120716 L2 Soa For Enterprise Og Wsh Conf
20120716 L2 Soa For Enterprise Og Wsh ConfSUNDAR RAMANATHAN
 
[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
 
Malone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationMalone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationThanapan Ittisakulchai
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011MDDAY11
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinsonNASAPMC
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinsonNASAPMC
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architectureTot Bob
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David AmellerDavid Ameller
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)EMC
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17sakpob
 

Semelhante a Graph Pattern Identification (20)

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
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]
 
EasySOA: A New Approach to SOA
EasySOA: A New Approach to SOAEasySOA: A New Approach to SOA
EasySOA: A New Approach to SOA
 
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
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
20120716 l2 soa for enterprise-og-wsh-conf
20120716 l2 soa for enterprise-og-wsh-conf20120716 l2 soa for enterprise-og-wsh-conf
20120716 l2 soa for enterprise-og-wsh-conf
 
20120716 L2 Soa For Enterprise Og Wsh Conf
20120716 L2 Soa For Enterprise Og Wsh Conf20120716 L2 Soa For Enterprise Og Wsh Conf
20120716 L2 Soa For Enterprise Og Wsh Conf
 
[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
 
Malone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementationMalone r12 upgrade-versus-reimplementation
Malone r12 upgrade-versus-reimplementation
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinson
 
Jeff.robinson
Jeff.robinsonJeff.robinson
Jeff.robinson
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David Ameller
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)RESTful SOA and the Spring Framework (EMCWorld 2011)
RESTful SOA and the Spring Framework (EMCWorld 2011)
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17
 
java
javajava
java
 
Services oriented architecture
Services oriented architectureServices oriented architecture
Services oriented architecture
 

Último

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXUXDXConf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfChristopherTHyatt
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Boni Yeamin
 

Último (20)

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 

Graph Pattern Identification

  • 1. Graph-based Pattern Identification Welcome from Architecture Change Logs Presentation Title Aakash Ahmad, Pooyan Jamshidi and Claus Pahl 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. 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 and data stores (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 attributes of change in terms of integration, replacement, decomposition etc. 2 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 3. 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] 3 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 4. Change Patterns to guide Architecture Evolution Central Hypothesis: A systematic investigation into the history of architectural changes enables discovery of recurring operationalisation and patterns that guide architecture change management. - Change Log: a transparent, centrally manageable repository maintaining traces of evolution over time - Change Graph: formalising change instances for an automated analysis of operationalisation and dependencies. Pattern-based Evolution Benefits for Pattern-based Reuse 4 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 5. Related Research - Patterns and Evolution Evolution in SOAs? Patterns in Architectural Abstractions? Evolution 1Patterns Process Change Patterns Repository Paths Process-centric Evolution Evolution Shelf Evolution Styles Process Change Patterns Process Mining and Evolution MESOA’07’08’09’10 Maintenance, Evolution, Adaptation Reuse of Evolution in SOAs 5 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 6. Log-based Analysis of Architecture Change Architecture Change Logs (ACL) as a knowledge base provide us with a transparent and centrally manageable repository by maintaining fine-granular instances of sequential change aggregating over time. - Adequacy of Change Log Data ACL =< AC1,AC2, . . . ,ACN > Completeness, Granularity of Change, etc. - Log Data Classification Change Data & Auxiliary Data - Architecture Change Instances EBPP and TRS case studies 6 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 7. Architecture Evolution Case Study 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 7 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 8. Solution Overview 1. The Pre-processing Approach - Capturing Change Instances - Log Data Classification - Change Instance Formalisation 2. Log Data Analysis - Change Operationalisation - Operational Dependencies - Pattern Identification 8 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 9. Graph-based Formalisation of Change Instances - Formalise Change Instances from Log as an Attributed Typed Graph - Formal analysis and effiecient processing of significantly large data size - Graph-mining as a formal approach to discover operationalisation and patterns 9 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 10. A XML Schema B Graph Metadata C Graph Instance D Attributed Nodes E Attributed Edges 10 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 11. 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 11 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 12. Operationalisation and Dependencies in Change Logs An effective and potentially reusable solution to recurring architecture evolution problems is a consequence of empirical discovery and not a mere invention. A pattern can be i) identified as recurrent, ii) specified once and iii) instantiated multiple times to support potential reuse in architecture evolution 1. Operationalisation - Atomic - Composite - Sequential 2. Dependencies - Hierarchical - Sequential - Order & Inordered LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 13. Architecture Change Sequencing Matching Functions - TypeEquv (Sx.77, Sy.313)  return < true > - TypeEquv (Sx, Sy)  return < 1 > - OrdEquv(Sx, Sy)  return < false > 13 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 14. Overview of Pattern Identification Process Apriori-based approach - Breadth First Search strategy during each iteration to i) Generate pattern candidates (CP) ii) Validate pattern candidates from CP’ iii) Occurance frequency of CP’in GC. Graph Objects Sequence Length Sequence Frequencies 14 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 15. Step 1 : Candidate Generation candidateGeneration() 1. Input(s) - Change Graph GC, - Min Length of Candidate minLen(CP), - Max Length of Candidate maxLen(CP) 2. Processing s1: start iteration at root ← GC .getRoot() s2: while minLen(CP) ≤ CandidateLength ≤ maxLen(CP) s3: get candidate list buff(CP ) ← < cp1(n1.n2); cp2(n2.n3);…; cp7(n3:n4:n5)> s4: allow node matching [TypeEquv(ni, nj)] 𝑚𝑎𝑡𝑐ℎ 𝑚𝑎𝑡𝑐ℎ nodeMatching(ni, nj) : ni.opr nj.opr ^ ni.ae nj.ae 3. Output(s) A list of generated candidates List(CP) 15 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 16. Step 2 : Candidate Validation candidateValidation() 1. Input(s) - Pattern Candidate cp ⊆ GC, - Min Length of Candidate minLen(CP), - Max Length of Candidate maxLen(CP) 2. Processing s1: set isValid ← false s2: iterate while node ← 0 to node ≤ cp.length() s3: validate if lookUp(cp.node.AE) == true return <true> s4: otherwise return <false> 3. Output(s) - A boolean <true/false> value indicating a valid/invalid candidate 16 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 17. Step 3 : Pattern Matching patternMatch() 1. Input(s) - Change Graph GC, - Min Length of Candidate minLen(CP), - Max Length of Candidate maxLen(CP) 2. Processing s1: start iteration at root ← GC .getRoot() s2: while minLen(CP) ≤ CandidateLength ≤ maxLen(CP) s3: get candidate list buff(CP ) ← < cp1(n1.n2); cp2(n2.n3);…; cp7(n3:n4:n5)> s4: allow node matching [TypeEquv(ni, nj)] 𝑚𝑎𝑡𝑐ℎ 𝑚𝑎𝑡𝑐ℎ nodeMatching(ni, nj) : ni.opr nj.opr ^ ni.ae nj.ae 3. Output(s) A list of generated candidates List(CP) 17 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 18. Identified Pattern Types A pre-defined Pattern Classification types CLS =< Inclusion, Exclusion, Replacement > 18 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 19. An Identified Pattern Instance : Co-related Inclusion Name, Intent, Context Operationalisation Architecture Elements 19 LERO© 2010 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 20. Algorithmic Analysis - Linear Growth, Pattern Instances ∝ 1/Frequency - Parameterisations Vital for Frequency Threshold, Graph Size, Minimum and Maximum Pattern Lengths. 20 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 21. Tool Support G-Pride Pat-Lib Possible Limitations - Architecture Type: beyond a pre-defined architecture model is not evaluated yet. - Change Anti-patterns: resulting from counter-productive pattern-based evolution. 21 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 22. Future Work The notion of a change pattern language - Semantic relationships among patterns that exist in the catalogue - Exploiting pattern-level vocabulary to address common evolution tasks. Architectural transformation by means of instantiating change patterns. - Allow architects to model and execute generic and potentially reusable solution to recurring architecture evolution problems. - A graph-transformation system to support architecture evolution guided by change patterns. - A prototype (Pat-Evol) shall allow a experimental data to evaluate the adequacy and applicability of the proposed solution in a practical context. 22 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE
  • 23. Thank you for your attention. 23 LERO© 2011 THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE