SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Business Process and Software Architecture Model
                     Co-evolution Patterns
                         Pooyan Jamshidi, Claus Pahl
              Lero - The Irish Software Engineering Research Centre,
                    School of Computing, Dublin City University



             Modeling in Software Engineering (MiSE) @ ICSE 2012
                              Zurich, Switzerland



Lero© 2012
Overview
• Context: models at different levels                  P        LP                          P’
                                                                                       A2
  may evolve dependently or              A1   A2           A3                A1             A3

  independently.                                                T
                                                                                       A4
                                              d1                                       d1
• Problem: architecture-based                                        Ɵ
                                                                         Λ
  software evolution mechanisms are                F                              F’

  not executed in controllable
  manner.                                                       T’

• Objective: How the architecture
  model can be adapted to the                          A        LA                          A’

  changes raised by process models
  with an emphasis on preserving        Software architecture co-evolution
                                        conceptual model
  initial architectural decisions.
                                        P, P', A, A': Model; T, T', F, F': Model
• Outcome: A set of recurrent co-       Evolution (Transformation);
  evolution patterns, A graph-based     Λ: Transformation Evolution; Ɵ: Change
  formalism to enable automated         Impact
  change.
                                                                                                 2
Lero© 2012
Agenda
     Motivations
     Co-evolution Patterns
     Formalization of the Co-Evolution Process
     Case Study
     Summary




                                                  3
Lero© 2012
Architecture Evolution History Graph




                     [David Garlan et al.]


                                               4
Lero© 2012
Why Evolution Patterns?

   • History graph of architecture evolution can be
     extremely large.
   • Architecture evolution appear to follow certain
     common patterns [Evolution Style by Garlan et al.]
     [Evolution Shelf by Tamzalit et al.].
   • Reusable source of knowledge. Drivers are
     characterized via a change scenario (the problem).
     Consequential change provides mechanism how to
     transform the companion (the solution).
   • Automated assistance for capturing and reusing
     knowledge about architectural evolution.

                                                          5
Lero© 2012
Evolution in model-driven context
                                                     P      FL         A




                                            Patch    ∆P     F1        ∆A    Patch




                                                     P'     F         A'
               P     F      A




      Diff    ∆P    ΛF      ∆A      Patch                   F2
                                                    ∆P'              ∆A'



              P'     F      A'                              F
                                                    P''               A''


             Delta transformation



                                                      Live transformation




                                                                                    6
Lero© 2012
Agenda
     Motivations
     Co-evolution Patterns
     Formalization of the Co-Evolution Process
     Case Study
     Summary




                                                  7
Lero© 2012
Change Impact Patterns
                               P                                         P’
                                                                   A2

             A1      A2            A3                 A1                 A3

                                                                   A4
                                            T
                      d1
                                                                    d1



                           F
                                                Ɵ             F’




                                           T’



                               A                                         A’


                  Mostly inspired by the work of [Weber et al. 2008]
                                                                              8
Lero© 2012
1. Insert an activity between two private activities
 Problem: an activity has to be accomplished which
 has not been modeled in the process schema so far.
                                                                            Op (A1)
             CP

                                                                     C P’

   A1                  A2        A3        A4

                                                CIP1      Op (A1)

                                                                            Op (A5)




   A1             A2        A5        A3   A4             Op (A4)




                       BP change                                            Op (A4)




Constraints (Invariants):
A2 and A3 are mapped to
                                                  SA behavior protocol change
different component than
A1 and A4                 Consequence: a new operation has to be inserted into the
                          SA behavior protocol.
                                                                                      9
Lero© 2012
2. Move an activity (serially, parallel, conditionally)


        A1          A2        A3
                                               Op (A1)              Op (A1)




                                    CIP2

                                               Op (A2)
                                                          Op (A2)             Op (A3)
                         A2


       A1



                                               Op (A3)
                         A3




                                                                                        10
Lero© 2012
3. Insert an activity (serially, parallel, conditionally)




                  A1        A3
                                      CIP3




             A1        A2        A3




                                                                     11
Lero© 2012
4. Replace activity


                                     Op (A1)   Op (A1)

             A1    A2    A3
                              CIP4
                                     Op (A2)   Op (A2’)



             A1    A2’   A3

                                     Op (A3)   Op (A3)




                                                          12
Lero© 2012
5. Update a condition

                                                          Op (A1)
                                         Op (A1)

                                    CP             C P’

              A1        A2    A3

                                                          Op (A2)
                             CIP5        Op (A2)



             A1        A2    A3

                                                          Op (A3)
                                         Op (A3)




                                                                    13
Lero© 2012
6. Embed activity in a loop

                                                    Op (A1)
                                          Op (A1)

              A1    A2   A3

                                   CIP6
                                                    Op (A2)
                                          Op (A2)




              A1   A2         A3
                                          Op (A3)
                                                    Op (A3)




                                                              14
Lero© 2012
7. Embed activity in conditional branch
                                                  Op (A1)
                              Op (A1)
           A1      A2   A3


                              Op (A2)             Op (A2)


      A1          A2     A3
                              Op (A3)
                                                  Op (A3)




                                             A1   A2        A3




                                        A1        A2             A3




                                                                      15
Lero© 2012
Transformation Evolution

                             P                                     P’
                                                              A2

             A1    A2            A3             A1                 A3
                                                             A4
                                       T
                    d1
                                                              d1


                                       Λ
                         F                              F’



                                       T’




                             A                                     A’




                  Mostly inspired by the work of [Erdogmus]
                                                                        16
Lero© 2012
Mapping Change Patterns

                                                           MCP2. extension
             Initial configuration    MCP1. abstraction
                                                                     MCP3. refinement




                                            MCP5. flatten (wrap)


                       MCP6. rewire




                                           MCP7. replacement

                                                                                        17
Lero© 2012
Agenda
     Motivations
     Co-evolution Patterns
     Formalization of the Co-Evolution Process
     Case Study
     Summary




                                                  18
Lero© 2012
Formalization of the Co-Evolution Process
             BPMM


                      Conforms             TMMBPM

                                 P                              P’
                                                T




                                                     Ɵ
             ADMM-B



                                 A                              A’
                                                T’




                                     TMMADM-S        TMMADM-B


             ADMM-S




                                                                     19
Lero© 2012
Graph-Based Abstract Description of the Evolution
                    Semantics
 Pre-condition: Change
 Post-condition: Change
                                                                        Op (A1)
             CP

                                                                 C P’

   A1                  A2        A3        A4

                                                CIP1   Op (A1)

                                                                        Op (A5)




   A1             A2        A5        A3   A4          Op (A4)




                                                                        Op (A4)




Invariants: NACs and
attributed condition



                                                                                  20
Lero© 2012
Why typed graph transformations?
      • BP and SA models can be easily formalized as
        graphs.
      • Graph transformation rules are self-contained
        and independent of each other; each rule can
        be applied when its preconditions are
        satisfied and reused several times to make the
        required changes.
      • Typed graphs capture the relation among
        business process and architecture types.
                                                         21
Lero© 2012
Type graph of business process model
                           evolution




                                                    22
Lero© 2012
Type graph of software architecture structural
                       model evolution




                                                         23
Lero© 2012
Type graph of software architecture behavioral
                      model evolution




                                                        24
Lero© 2012
Type graph of change impact
    transformation
                                  25
Lero© 2012
Co-evolution History Graph
                                                       Tbi2
                                  BPM1                           BPM7

               Tbi1
                                                Tbi5

                           Tbi3
             BPM0                 BPM2

                                         Tbi6                 BPM4

                Tbi4
                                  BPM3                        BPM5

                                                              BPM6
                                         Tbi7

                                                       Tai2             Tai3             Tai4
                                  ADM1                           ADM3             ADM4          ADM7
                    Tai1


                                                                           Tai8

             ADM0

                                         Tai6                 ADM5

                Tai5
                                  ADM2


                                         Tai7                 ADM6




                                                                                                       26
Lero© 2012
Change Primitives vs. Change Patterns



                            Extending architecture by inserting a component
                            and connector into its configuration


                 Change Primitives:
                 New component (C3);
                 New connector (Conn1);
                                                               Change Patterns:
                 Add port (C3, p1);
                 Add port (C2, p2);                            Extend (ADM0, C3, Conn1);
                 Add port (Conn1, p3);
                 Add port (Conn1, p4);                         Specification complexity = 1
                 Bind (p1, p3);
                 Bind (p2, p4);

                 Specification complexity = 8




                                                                                              27
Lero© 2012
Change Primitives vs. Change Patterns
                            Op (A1)                                                        Op (A1)




                            Op (A2)
                                          Change behavior protocol of
                                          a component by moving an               Op (A2)             Op (A3)
                                          operation parallel to another
                            Op (A3)


                Change Primitives:
                Add control-node (OR-Split);
                Add control-node (OR-Join);                               Change Patterns:
                Move control-transition ((Op (A1), Op (A2)),              Parallel-move (BS, Op (A2), Op (A3));
                (Op (A1), OR-Split));
                Add control-transition (OR-Split, Op (A1));               Specification complexity = 1
                Add control-transition (OR-Split, Op (A3));
                Move control-transition ((Op (A1), Op (A3)),
                (Op (A1), OR-Join));
                Add control-transition (Op (A3), OR-Join);

                Specification complexity = 7




                                                                                                                  28
Lero© 2012
Agenda
     Motivations
     Co-evolution Patterns
     Formalization of the Co-Evolution Process
     Case Study
     Summary




                                                  29
Lero© 2012
Case Study



The initial LM process model



Embed an activity in conditional
branch
                                                Move activity




                                                                30
Lero© 2012
Case Study

Initial LM architecture model



                                                     Rewire


                                             Replacement, rewire, abstraction,
                                             and refinement
             Flatten and extension




                                                                                 31
Lero© 2012
Recap
                                                  P        LP                                 P’
                                                                                      A2
                                   A1   A2            A3                                      A3




      •
                                                                         A1




        Overview and Positioning
                                                                                      A4
                                                           T
                                        d1                                            d1
                                                                Ɵ
                                                                    Λ
                                             F                                   F’




                                                           T’




      • Motivation                           P
                                                  A        LA




                                                           F                          A
                                                                                              A’




      • Background              Diff         ∆P            ΛF                         ∆A           Patch

                                             P'            F                          A'


      • Change Pattern (Change Impact, Mapping
        Change)
      • Formalization and Implications                                          Extending architecture by inserting a
                                                                                component and connector into its




      • A Case Study
                                                                                configuration


                                                                                                                        Change Primitives:
                                                                        Change Patterns:
                                                                                                                        New component (C3);
                                                                        Extend (ADM0, C3,
                                                                                                                        New connector (Conn1);
                                                                        Conn1);
                                                                                                                        Add port (C3, p1);
                                                                                                                        Add port (C2, p2);
                                                                        Edit distance= 1
                                                                                                                        Add port (Conn1, p3);
                                                                                                                        Add port (Conn1, p4);
                                                                                                                        Bind (p1, p3);
                                                                                                                        Bind (p2, p4);

                                                                                                                        Edit distance= 8




                                                                                                                                                 32
Lero© 2012

Mais conteúdo relacionado

Destaque

Process architecture - Part II
Process architecture - Part IIProcess architecture - Part II
Process architecture - Part IIMarcello La Rosa
 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOASperasoft
 
Process architecture - Part I
Process architecture - Part IProcess architecture - Part I
Process architecture - Part IMarcello La Rosa
 
N-Tier Application Architecture
N-Tier Application ArchitectureN-Tier Application Architecture
N-Tier Application ArchitectureManoj Kumar
 
3 Tier Architecture
3 Tier Architecture3 Tier Architecture
3 Tier Architectureguestd0cc01
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier ArchitectureWebx
 
How to build the perfect pattern library
How to build the perfect pattern libraryHow to build the perfect pattern library
How to build the perfect pattern libraryWolf Brüning
 

Destaque (10)

Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Data types
Data typesData types
Data types
 
Process architecture - Part II
Process architecture - Part IIProcess architecture - Part II
Process architecture - Part II
 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOA
 
Process architecture - Part I
Process architecture - Part IProcess architecture - Part I
Process architecture - Part I
 
N-Tier Application Architecture
N-Tier Application ArchitectureN-Tier Application Architecture
N-Tier Application Architecture
 
3 Tier Architecture
3 Tier Architecture3 Tier Architecture
3 Tier Architecture
 
Jbpm6
Jbpm6Jbpm6
Jbpm6
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier Architecture
 
How to build the perfect pattern library
How to build the perfect pattern libraryHow to build the perfect pattern library
How to build the perfect pattern library
 

Mais de Pooyan Jamshidi

Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachLearning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachPooyan Jamshidi
 
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn... A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...Pooyan Jamshidi
 
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Pooyan Jamshidi
 
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Pooyan Jamshidi
 
Transfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsTransfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsPooyan Jamshidi
 
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...Pooyan Jamshidi
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOpsPooyan Jamshidi
 
Integrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsIntegrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsPooyan Jamshidi
 
Transfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwareTransfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
 
Architectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwareArchitectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwarePooyan Jamshidi
 
Production-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectProduction-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectPooyan Jamshidi
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisPooyan Jamshidi
 
Learning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsLearning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsPooyan Jamshidi
 
Sensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwareSensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwarePooyan Jamshidi
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Pooyan Jamshidi
 
Transfer Learning for Improving Model Predictions in Robotic Systems
Transfer Learning for Improving Model Predictions  in Robotic SystemsTransfer Learning for Improving Model Predictions  in Robotic Systems
Transfer Learning for Improving Model Predictions in Robotic SystemsPooyan Jamshidi
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOpsPooyan Jamshidi
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...Pooyan Jamshidi
 

Mais de Pooyan Jamshidi (20)

Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachLearning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
 
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn... A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
 
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
 
Transfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsTransfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning Systems
 
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOps
 
Learning to Sample
Learning to SampleLearning to Sample
Learning to Sample
 
Integrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsIntegrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of Robots
 
Transfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwareTransfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable Software
 
Architectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwareArchitectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based Software
 
Production-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectProduction-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software Architect
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 
Learning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsLearning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain Environments
 
Sensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwareSensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic Software
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
 
Transfer Learning for Improving Model Predictions in Robotic Systems
Transfer Learning for Improving Model Predictions  in Robotic SystemsTransfer Learning for Improving Model Predictions  in Robotic Systems
Transfer Learning for Improving Model Predictions in Robotic Systems
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOps
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
 

Último

Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Último (20)

Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

Business Process and Software Architecture Model Co-evolution Patterns

  • 1. Business Process and Software Architecture Model Co-evolution Patterns Pooyan Jamshidi, Claus Pahl Lero - The Irish Software Engineering Research Centre, School of Computing, Dublin City University Modeling in Software Engineering (MiSE) @ ICSE 2012 Zurich, Switzerland Lero© 2012
  • 2. Overview • Context: models at different levels P LP P’ A2 may evolve dependently or A1 A2 A3 A1 A3 independently. T A4 d1 d1 • Problem: architecture-based Ɵ Λ software evolution mechanisms are F F’ not executed in controllable manner. T’ • Objective: How the architecture model can be adapted to the A LA A’ changes raised by process models with an emphasis on preserving Software architecture co-evolution conceptual model initial architectural decisions. P, P', A, A': Model; T, T', F, F': Model • Outcome: A set of recurrent co- Evolution (Transformation); evolution patterns, A graph-based Λ: Transformation Evolution; Ɵ: Change formalism to enable automated Impact change. 2 Lero© 2012
  • 3. Agenda  Motivations  Co-evolution Patterns  Formalization of the Co-Evolution Process  Case Study  Summary 3 Lero© 2012
  • 4. Architecture Evolution History Graph [David Garlan et al.] 4 Lero© 2012
  • 5. Why Evolution Patterns? • History graph of architecture evolution can be extremely large. • Architecture evolution appear to follow certain common patterns [Evolution Style by Garlan et al.] [Evolution Shelf by Tamzalit et al.]. • Reusable source of knowledge. Drivers are characterized via a change scenario (the problem). Consequential change provides mechanism how to transform the companion (the solution). • Automated assistance for capturing and reusing knowledge about architectural evolution. 5 Lero© 2012
  • 6. Evolution in model-driven context P FL A Patch ∆P F1 ∆A Patch P' F A' P F A Diff ∆P ΛF ∆A Patch F2 ∆P' ∆A' P' F A' F P'' A'' Delta transformation Live transformation 6 Lero© 2012
  • 7. Agenda  Motivations  Co-evolution Patterns  Formalization of the Co-Evolution Process  Case Study  Summary 7 Lero© 2012
  • 8. Change Impact Patterns P P’ A2 A1 A2 A3 A1 A3 A4 T d1 d1 F Ɵ F’ T’ A A’ Mostly inspired by the work of [Weber et al. 2008] 8 Lero© 2012
  • 9. 1. Insert an activity between two private activities Problem: an activity has to be accomplished which has not been modeled in the process schema so far. Op (A1) CP C P’ A1 A2 A3 A4 CIP1 Op (A1) Op (A5) A1 A2 A5 A3 A4 Op (A4) BP change Op (A4) Constraints (Invariants): A2 and A3 are mapped to SA behavior protocol change different component than A1 and A4 Consequence: a new operation has to be inserted into the SA behavior protocol. 9 Lero© 2012
  • 10. 2. Move an activity (serially, parallel, conditionally) A1 A2 A3 Op (A1) Op (A1) CIP2 Op (A2) Op (A2) Op (A3) A2 A1 Op (A3) A3 10 Lero© 2012
  • 11. 3. Insert an activity (serially, parallel, conditionally) A1 A3 CIP3 A1 A2 A3 11 Lero© 2012
  • 12. 4. Replace activity Op (A1) Op (A1) A1 A2 A3 CIP4 Op (A2) Op (A2’) A1 A2’ A3 Op (A3) Op (A3) 12 Lero© 2012
  • 13. 5. Update a condition Op (A1) Op (A1) CP C P’ A1 A2 A3 Op (A2) CIP5 Op (A2) A1 A2 A3 Op (A3) Op (A3) 13 Lero© 2012
  • 14. 6. Embed activity in a loop Op (A1) Op (A1) A1 A2 A3 CIP6 Op (A2) Op (A2) A1 A2 A3 Op (A3) Op (A3) 14 Lero© 2012
  • 15. 7. Embed activity in conditional branch Op (A1) Op (A1) A1 A2 A3 Op (A2) Op (A2) A1 A2 A3 Op (A3) Op (A3) A1 A2 A3 A1 A2 A3 15 Lero© 2012
  • 16. Transformation Evolution P P’ A2 A1 A2 A3 A1 A3 A4 T d1 d1 Λ F F’ T’ A A’ Mostly inspired by the work of [Erdogmus] 16 Lero© 2012
  • 17. Mapping Change Patterns MCP2. extension Initial configuration MCP1. abstraction MCP3. refinement MCP5. flatten (wrap) MCP6. rewire MCP7. replacement 17 Lero© 2012
  • 18. Agenda  Motivations  Co-evolution Patterns  Formalization of the Co-Evolution Process  Case Study  Summary 18 Lero© 2012
  • 19. Formalization of the Co-Evolution Process BPMM Conforms TMMBPM P P’ T Ɵ ADMM-B A A’ T’ TMMADM-S TMMADM-B ADMM-S 19 Lero© 2012
  • 20. Graph-Based Abstract Description of the Evolution Semantics Pre-condition: Change Post-condition: Change Op (A1) CP C P’ A1 A2 A3 A4 CIP1 Op (A1) Op (A5) A1 A2 A5 A3 A4 Op (A4) Op (A4) Invariants: NACs and attributed condition 20 Lero© 2012
  • 21. Why typed graph transformations? • BP and SA models can be easily formalized as graphs. • Graph transformation rules are self-contained and independent of each other; each rule can be applied when its preconditions are satisfied and reused several times to make the required changes. • Typed graphs capture the relation among business process and architecture types. 21 Lero© 2012
  • 22. Type graph of business process model evolution 22 Lero© 2012
  • 23. Type graph of software architecture structural model evolution 23 Lero© 2012
  • 24. Type graph of software architecture behavioral model evolution 24 Lero© 2012
  • 25. Type graph of change impact transformation 25 Lero© 2012
  • 26. Co-evolution History Graph Tbi2 BPM1 BPM7 Tbi1 Tbi5 Tbi3 BPM0 BPM2 Tbi6 BPM4 Tbi4 BPM3 BPM5 BPM6 Tbi7 Tai2 Tai3 Tai4 ADM1 ADM3 ADM4 ADM7 Tai1 Tai8 ADM0 Tai6 ADM5 Tai5 ADM2 Tai7 ADM6 26 Lero© 2012
  • 27. Change Primitives vs. Change Patterns Extending architecture by inserting a component and connector into its configuration Change Primitives: New component (C3); New connector (Conn1); Change Patterns: Add port (C3, p1); Add port (C2, p2); Extend (ADM0, C3, Conn1); Add port (Conn1, p3); Add port (Conn1, p4); Specification complexity = 1 Bind (p1, p3); Bind (p2, p4); Specification complexity = 8 27 Lero© 2012
  • 28. Change Primitives vs. Change Patterns Op (A1) Op (A1) Op (A2) Change behavior protocol of a component by moving an Op (A2) Op (A3) operation parallel to another Op (A3) Change Primitives: Add control-node (OR-Split); Add control-node (OR-Join); Change Patterns: Move control-transition ((Op (A1), Op (A2)), Parallel-move (BS, Op (A2), Op (A3)); (Op (A1), OR-Split)); Add control-transition (OR-Split, Op (A1)); Specification complexity = 1 Add control-transition (OR-Split, Op (A3)); Move control-transition ((Op (A1), Op (A3)), (Op (A1), OR-Join)); Add control-transition (Op (A3), OR-Join); Specification complexity = 7 28 Lero© 2012
  • 29. Agenda  Motivations  Co-evolution Patterns  Formalization of the Co-Evolution Process  Case Study  Summary 29 Lero© 2012
  • 30. Case Study The initial LM process model Embed an activity in conditional branch Move activity 30 Lero© 2012
  • 31. Case Study Initial LM architecture model Rewire Replacement, rewire, abstraction, and refinement Flatten and extension 31 Lero© 2012
  • 32. Recap P LP P’ A2 A1 A2 A3 A3 • A1 Overview and Positioning A4 T d1 d1 Ɵ Λ F F’ T’ • Motivation P A LA F A A’ • Background Diff ∆P ΛF ∆A Patch P' F A' • Change Pattern (Change Impact, Mapping Change) • Formalization and Implications Extending architecture by inserting a component and connector into its • A Case Study configuration Change Primitives: Change Patterns: New component (C3); Extend (ADM0, C3, New connector (Conn1); Conn1); Add port (C3, p1); Add port (C2, p2); Edit distance= 1 Add port (Conn1, p3); Add port (Conn1, p4); Bind (p1, p3); Bind (p2, p4); Edit distance= 8 32 Lero© 2012

Notas do Editor

  1. •How the architecture develops over time•The tradeoffs among the different ways of getting from point A to point B•Stages of development, release points, etc.•Constraints over evolution pathsHow should we execute the evolution to achieve our goals, given limited resources?How can we be certain that intermediate releases do not break existing architectural constraints?How can we make tradeoffs between time, cost, development effort, risk, etc.?How can we represent and communicate an architecture evolution plan?
  2. this type graph should also include the concepts required to describe how the concepts evolve over time: the evolution tags.