The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
ICMS08b.ppt
1. An Empirical Study
of the Relationships between
Design Pattern Roles
and Class Change Proneness
Massimiliano DiPenta - University of Sannio
Luigi Cerulo - University of Sannio
Yann-Gaël Guéhéneuc - Université de Montréal
Giuliano Antoniol - École Polytechnique de Montréal ICSM2008BEIJING
2. Outline
Introduction
What is a design pattern role
Research questions
The aim of the work
Data extraction process
How we extract the dataset
Results
What we observed
ICSM2008BEIJING
3. Design Pattern Role, What Is It?
Component
Role a Composite pattern
Design pattern
Class A
Class B Class C Class D
Role c
Leaf Role b
Composite
ICSM2008BEIJING
4. Design Pattern Role, What Is It?
Subject Observer pattern
Observer
Class A Class B
Class C Class D
Concrete subject Concrete observer
ICSM2008BEIJING
6. DeMINA– Ptidej Tool Suite
A Multi-layered Framework for Design
Pattern Identification
[Y.G. Guéhéneuc and G. Antoniol, to appear in the September/October
2008 issue of TSE]
Able to detect roles in 12 DP:
Abstract Factories, Adapters, Commands,
Composites, Decorators, Factory Methods, Observers,
Prototypes, Singletons, State/Strategies, Template methods,
Visitors
Precision = 34%, recall = 100%
ICSM2008BEIJING
7. What We Are Interested In
What happens in
real software projects?
ICSM2008BEIJING
8. Research Questions
… it is known that design pattern
classes are less change and fault
prone…
Inside a design pattern
RQ1 – Which roles are more likely to change?
RQ2 – Which kind of change is more likely to
predominate?
ICSM2008BEIJING
9. Data We Have Extracted
A versioned software system can be viewed as a
sequence of snapshots generated by a sequence
of change sets
Change set 2-3
Change set 2-3
commit of B1.5 G1.6
commit of B1.5 G1.6
S1 S2 S3 Sn
Change set 1-2
Change set 1-2 Heuristic:
Heuristic:
commit of B1.4 G1.5 F1.1
commit of B1.4 G1.5 F1.1 commits that share the same author, branch and notes
commits that share the same author, branch and notes
and their distance is < 200 s. [Zimmermann et al. ICSE 04]
and their distance is < 200 s. [Zimmermann et al. ICSE 04]
ICSM2008BEIJING
10. Detection of Structural Changes
S1 S2 S3 Sn
Class X Class X
compare
M A I H
Method Attribute Class imple- Class
addition and addition and mentation hierarchy
removal removal changes changes
ICSM2008BEIJING
11. Data Set #1
Kind of Changes
Snapshots
S1 S2 S3 S4 S5 … Sn
C1 M,A M,I
Classes
C2 A,H
C3 A,H
C4 M M I,H
…
ICSM2008BEIJING
13. Back to Research Questions
Which roles are more likely to change?
Counts of class changes grouped by design pattern roles
Classes S1 S2 S3 S4 S5 … #
C1 (Observer#1-subject) 2
C2 (Observer#1-observer) 4
C3 (Observer#2-subject) 1
C4 (Composite#1-leaf) 5
…
ICSM2008BEIJING
14. Back to Research Questions
Which kind of change is more likely to
predominate?
Counts of class changes groupsed by design pattern roles and
change type
Classes S1 S2 S3 S4 S5 … #M #I #H #A
C1 (Observer#1-subject) M M,H 2 - 1 -
C2 (Observer#1-observer) A,I A,H A,I M,I - 3 1 3
C3 (Observer#2-subject) I - 1 - -
C4 (Composite#1-leaf) H H H,I H,A - 1 4 1
…
ICSM2008BEIJING
15. Results, What We Have Observed
Analyzed systems
JHotDraw (177 change sets)
Xerces-j (4972 change sets)
Eclipse JDT (23424 change sets)
Analyzed design patterns
Abstract Factories, Adapters, Commands,
Composites, Decorators, Factory Methods, Observers,
Prototypes, Singletons, State/Strategies, Template methods,
Visitors
ICSM2008BEIJING
18. Composite
Eclipse-JDT
ally
rti RMED
Pa FI
CON
ICSM2008BEIJING
19. Conclusions
This study is not yet concluded
Many other questions still to answer…
Main issues to overcome
Design pattern detection (e.g., other languages than Java)
Change type detection (e.g., class relationship change)
ICSM2008BEIJING