Upload
solada
View
22
Download
0
Embed Size (px)
DESCRIPTION
Identification of Distributed Features in SOA. Anis Yousefi, PhD Candidate Department of Computing and Software McMaster University July 30, 2010. Feature Identification. Feature being used. List of classes. User. Software Engineer. Legacy Software Engineering!. - PowerPoint PPT Presentation
Citation preview
Identification of Distributed Features in
SOA
Anis Yousefi, PhD Candidate
Department of Computing and Software
McMaster University
July 30, 2010
1
Feature Identification
UserSoftware Engineer
List of classes
Feature being used
2
Legacy Software Engineering!
3
Feature Identification Literature• Identifying the source code constructs
activated when exercising a feature– Feature: functionality offered by a system
• Techniques – Textual analysis– Static analysis – Dynamic analysis– Hybrid approaches
4
Trace-based Dynamic Analysis• Instrumentation– TPTP
• Scenario execution
• Trace analysis– Pattern mining
5
Challenges
• Trace collection– Scattered implementation of features– Concurrency of events
• Feature location– Non-deterministic behavior of features
6
Summary
• What? – Identify the code associated with distributed features in SOA
– Identify dynamic feature behavior
• How? – Trace-based dynamic analysis of services in SOA
– Pattern mining to identify feature behavior
• Challenges?– Scattered implementation of features, concurrency of events, non-
deterministic behavior of features
7
Steps of The Proposed Approach• Run feature-oriented scenarios in SOA• Collect and merge execution traces of
services• Mine traces to extract patterns• Analyze the patterns to identify feature-
specific code and behavior
8
12
3 4
The Proposed Framework
9
10
Step 1- Running Scenarios
10
`̀`
`
`
`
11
m1 m2m3 m4…
Step 2- Merging Distributed Traces• Trace Structure
11
Enter m1, Timestamp: 0Enter m2, Timestamp: 1Leave m2, Timestamp: 3Enter m3, Timestamp: 4Enter m4, Timestamp: 5Leave m4, Timestamp: 6Leave m3, Timestamp: 7…
Step 2- Merging(Contd.)• Problems
– Distributed data– Interweaved data
• Solution– Building “block
execution tree”– Resolving
uncertainties• Before-after
analysis• Textual analysis• Frequency analysis
– Merging the traces
12
Step 3- Mining Frequent Patterns• Traces represent “call graphs”
• Mining frequent sub-graphs
Trace i Trace j
m0
m1
m2
m3
m4
m5
m6
m7
m0 m1m2 m3
m4m5m6m7
m0
m6
m2 m3m4
m5m6m7
m1
m0
m1
m2
m3
m4
m5
m6
m7
m6
X XY Y
Z W
Patterns: m1, Y
13
m1, {i}m5, {i}m6, {i}m7, {i}X, {i}m4, {i}Y, {i}Z, {i}
m1, {i,j}m5, {i,j}m6, {i,j}m7, {i,j}X, {i,j}m4, {i,j}Y, {i,j}Z{i}m6, {j}W,{j}
Step 4- Analyzing Patterns
• Distinguishing “feature-specific patterns” from “omnipresent patterns” and “noise patterns”
Pattern 1 Pattern 2 Pattern 3 Pattern 4
Trace 1 * * - *
Trace 2 * * - -
Trace 3 * - * -
14
Metrics: Feature Distribution
15
,
Sn
50%
100% 25%
FD (f) = 1 - 58.3% = 41.7%
f
f: featurep: patternFD(f,p): distribution of feature f over SOA with regard to pattern pSp: services contributing in pattern pMs: methods defined in services sMp: methods contributing in pattern p
€
FD( f , p) =1−1
Sp∗
Ms ∩ M p
Mss∈S p
∑
€
FD( f ) =1−1
S f∗
Ms ∩ M f
Mss∈S f
∑
€
S f = Spp∈P f
U
FD(f): distribution of feature f (all patterns)Sf: services contributing in the execution of feature fMf: methods contributing in the execution of feature fPf: patterns for feature f
€
M f = M pp∈P f
U,
Sm
Sk
15
mi
Metrics: Call Frequency
f
2 10 CF (f) = 12
€
CF( f , p) = number of calls to s. opop∈OPs∑
s∈Sp∑
€
CF( f ) =
CF( f , p)p∈P f
∑
Pf
f: featurep: patternCF (f,p): call frequency of feature f with regard to pattern pSp: services contributing in pattern pOPs: interface operations defined in services s
CF (f): call frequency of feature f (all patterns)Pf: patterns for feature f
OPi
16
mi
Sn
Sm
Sk
Metrics: Accuracy
€
Acc( f ) =Pf
C f
Acc(f): accuracy of service regarding feature fPf: patterns for feature fCf: cases defined on the scenarios
=1 works as we expected>1 considers additional cases<1 treats some cases equally
17
18
Future Work
• Abstract feature behavior– Normal vs. alternative behavior– Augment published service description
• Improve/Define metrics
18