Pattern-based Evolution

16
THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE Welcome Presentation Title Pattern-driven Reuse in Architecture-centric Evolution for Service Software Aakash Ahmad, Pooyan Jamshidi and Claus Pahl [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

description

Pattern-driven Reuse in Architecture-centric Evolution for Service Software. (ICSOFT'12)

Transcript of Pattern-based Evolution

Page 1: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Welcome Presentation Title

Pattern-driven Reuse in Architecture-centric Evolution for Service Software

Aakash Ahmad, Pooyan Jamshidi and Claus Pahl

[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

Page 2: Pattern-based Evolution

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

LERO© 2010 2

Page 3: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE LERO© 2011 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.

Page 4: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE LERO© 2011 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]

Page 5: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Related Research - Patterns and Evolution

LERO© 2011 5

Evolution Patterns Process Change Patterns

Evolution Shelf

Repository Paths

1

Evolution in SOAs? Patterns in Architectural Abstractions?

Reuse of Evolution in SOAs

Evolution Styles Process Mining Process Change

Process-centric Evolution

MESOA’07’08’09’10

Maintenance, Evolution, Adaptation

Page 6: Pattern-based Evolution

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.

LERO© 2011 6

Pattern-based Evolution Benefits for Pattern-based Reuse

Page 7: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

The Anatomy of Pattern-based Architecture Evolution

LERO© 2011 7

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).

Page 8: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Graph-based Change Pattern Notation

LERO© 2011 8

Pattern Specification – as an attributed typed Graph (.GML) notation.

Pattern Storage – Graph databse using Neo4j graph tuples.

Page 9: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE LERO© 2011 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

Page 10: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Pattern-based Architecture Evolution

LERO© 2010 10

Step 1: Architecture Change Specification.

Step 2: Change Pattern Retrieval

Step 3: Change Pattern Instantiation

Page 11: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Step 1: Change Specification

LERO© 2010 11

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

Page 12: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Step 2: Change Pattern Retrieval

LERO© 2010 12

(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.

Page 13: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Step 3: Change Pattern Instantiation

LERO© 2010 13

TT

IS

S GGG

Ss GSm : Tt GTm :

II GIm :

- Pattern Instantiation

- Addition Add<billType • ∈ CMP>;

Add<billingType ∈ CON>;

Add<getType ∈ CON>

- Removal Rem<billingData ∈ CON>.

Page 14: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Experimental Analysis & Evaluation

LERO© 2010 14

1 Scenario-based Evaluation - EBPP & TRS Evolution Cases

- Pattern Types & Adequacy

2 Prototype-based Validation - Automated Pattern-based Evolution

- Survey & Usability Analysis

Page 15: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE

Discover Evolution Pattern - prototype: G-Pride Maintain Pattern Library - prototype: Pat-Lib Reuse Change Execution - prototype: Pat-Evol

Pa

t-Ev

ol P

roje

ct

Recap

Page 16: Pattern-based Evolution

THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRE LERO© 2011 16

Thank you for your attention.