Date post: | 10-Jul-2015 |
Category: |
Technology |
Upload: | aakash-ahmad |
View: | 247 times |
Download: | 3 times |
Lero© 2013
PatEvol – A Pattern Language for Evolution
in Component-Based Software Architectures
Aakash Ahmad, Pooyan Jamshidi, Claus Pahl, Fawad Khaliq
Lero – the Irish Software Engineering Research Centre
School of Computing, Dublin City University, Ireland.
Lero© 2013
Agenda
Architecture-Centric Software Evolution
Evolution in Component-based Software Architectures
Research Problem and Challenges
Proposed Solution
The Anatomy of Pattern-based Architecture Evolution
Pat-Evol - Change Pattern Language for Evolution in CBSAs
Change Patterns to guide Architecture Evolution
Change Anti-Patterns
Conclusions
Lero© 2013
Architecture-Centric Software Evolution
Software Architecture represents the blue-print of a software as
topological configuration of computational components and connectors that
enable component-level interconnections. [ISO/IEC/IEEE 42010 Standard]
Software Evolution deals with adapting a software to changing
requirements and operating environment by means of addition, removal and
modification of software artifacts. [ACM/IEEE Software Engineering Curriculum, 2004]
Reuse-driven Architecture Evolution empowers
the role of software architect by promoting
generic and reusable off-the-shelf evolution expertise.
Lero© 2013
Evolution in Component-based Software Architectures
A. Component-Based Software Architecture (CBSA)
1. Component – Computation, Data Stores, Message Processor, […]
2. Connector – Component Interconnection, Message Passing, […]
3. Configuration – topology of components and connectors to model architecture.
[Add, Remove, Modify] <Components, Connctor, Configurations>
Component PortConnector
Endpoints
<<atomic>><<Composite>>
Configuration
1
2
3[ISO/IEC/IEEE 42010 Standard]
Evolved
ArchitectureC1 C2 Add Remove
ModifyC1 C2
CMSource
Architecture
B. Evolution in CBSAs
Lero© 2013
Research Problem: How to foster an explicit evolution-centric knowledge that enables
modeling and executing reuse of frequent evolution tasks in CBSAs?
Research Challenges:
- Empirical acquisition of reuse Knowledge and Expertise
- Application of reuse knowledge to evolve CBSAs
Research Problem and Challenges
“[…] in software architectures, evolution-centric reuse knowledge and expertise are
expressed as Styles and Patterns etc. that offer repeatable change implementation
expertise; that can be shared and reused as a solution to frequent (architecture) evolution
problems”
Our Systematic Literature Reviews:[1] A Framework for Classifying and Comparing Architecture-Centric Software Evolution Research, in CSMR’2013.
[2]. Reuse-driven Evolution and Adaptation in Software Architectures – A Systematic Literature Review, in preparation
Lero© 2013
Architecture Change Mining as a complementary and integrated
phase to Architecture Change Execution
1. Change Mining (Patterns Discovery) 2. Change Execution (Pattern Application)
Proposed Solution
Architecture Change Logs
Change
Operationalisation
Operationl
Dependencies
Architecture
Change Patterns
A B
C
Collection of Patterns
Change
SpecificationC1 C2
Source
Architecture
Change
Execution
Evolved
Architecture
C1 C2
CM
Collection of Patterns
Change Reuse
A
B
C
Lero© 2013
The Anatomy of Pattern-based Architecture Evolution
Change pattern provides a generic, first class abstraction (that can be operationalised and
parameterised) to support potential reuse in architectural change execution.
PAT<name, intent>: PRE(aem ∈ AE) 𝐼𝑁𝑉(𝑂𝑃𝑅𝑛(𝑎𝑒𝑚∈𝐴𝐸))
POST(ae′m ∈ AE).
Lero© 2013
The pattern language represents a formalised collection of architecture change patterns
to map problem-solution view of the domain (i.e; family of evolving CBSAs).
Pat-Evol - Change Pattern Language for Evolution in CBSAs
Language SequencingLanguage GrammarLanguage Vocabulary
Pattern Classification
- Pattern Instances
- Pattern Variants
Pattern Model
- Pattern Composition
- Semantic Relations
Pattern Classification
- Pattern Selection
- Pattern Relations
Graph-based Modeling of Pattern Language
Lero© 2013
Pattern Instances in the Language
Integrate(PRE, (C1, CM, C2), POST)
Pattern Selection with Question Option
Criteria (QOC) Methodology
Lero© 2013
Change Patterns to guide Architecture Evolution
Pattern Name Consequences Pattern Intent
Component Mediation
(CM , <C1, CM, C2>)
Integrates a component CM
among two or more directly
connected components C1, C2
Functional Slicing
(C, <C1, C2>)
Splits a component C in two or
more components C1, C2
Functional Unification
(<C1, C2>, C)
Merge two or more components
C1, C2 into a single component
C.
Active Displacement
(C2:C3, <C1, C2>, <C1, C3>)
Replace an existing Component
C1 with C3 while maintaining
connection with existing
component C2
Child Creation
(C1, x:C1)
Create a child component x1
inside an atomic Component C1
Child Adoption
(x:C1, <C1,x>, <C2, x>)
Move an internal component x
from its parent component C1
to another component C2
Child Swap
(x:C1, y:C2, <C1,x>, <C2, y>)
Swap an internal component x in
C1 to y in C2
Lero© 2013
Change Anti-PatternsAnti-pattern I – Orphan Child
• Prevention 1 – Kill the child if parent is dead).
• Prevention 2 – Apply the Child Adoption pattern to accommodate an orphan (i.e;
adopt the child if parent is dead).
Anti-pattern II – Bulky Component
Prevention – Apply Functional Slicing pattern to split the parent into fine-grained and
specialised components, Figure 4b).
Lero© 2013
Discover Evolution Pattern
- prototype: G-Pride
Maintain Pattern Library
- prototype: Pat-Lib
Reuse Change Execution
- prototype: Pat-Evol
Pa
t-Ev
olP
roje
ct
Recap
Lero© 2013
Thank you for your attention.