SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Recommendation
System for Design
Patterns in
Software
Development

Outline
Introduction

Recommendation System for Design Patterns
in Software Development

Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base

e
e e
Francis Palma1,2 , Hadi Farzin1, Yann-Ga¨l Gu´h´neuc1 ,
Naouel Moha2

Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session

1
2

´
Ecole Polytechnique de Montr´al, Canada
e
Universit´ du Qu´bec ` Montr´al, Canada
e
e
a
e

Summary
Comparison

Conclusion

4 June 2012

Pattern Trace Identification, Detection, and Enhancement in Java
SOftware Cost-effective Change and Evolution Research Lab
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

2 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

3 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Introduction
Motivating Scenario

First Scenario (Assumption 1)
Outline

Not reusable

Introduction
Motivating Scenario

Expensive maintenance life

Design Patterns and
Recommendation Systems

Poor performance/antipatterns

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

4 / 21

Designer

Developer

Produced System

Hard for comprehension
Low maintainability
Hard for evolution
Recommendation
System for Design
Patterns in
Software
Development

Introduction
Motivating Scenario

First Scenario (Assumption 1)
Outline

Not reusable

Introduction
Motivating Scenario

Expensive maintenance life

Design Patterns and
Recommendation Systems

Poor performance/antipatterns

Related Work

Designer

Developer

Produced System

Methodology
Ingredient: Knowledge Base

Hard for comprehension
Low maintainability
Hard for evolution

Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session

Second Scenario (Assumption 2)
Recommended Design Pattern

Summary
Comparison

Reusable in a new problem
Low cost maintenance

Conclusion

Good performance, no/less antipatterns

Designer

4 / 21

Developer

Produced System

Easy for comprehension
High maintainability
Easy for evolution
Recommendation
System for Design
Patterns in
Software
Development

Outline
Introduction

Introduction
Design Patterns and Recommendation Systems

Design Patterns?
◮

Motivating Scenario
Design Patterns and
Recommendation Systems

“Descriptions of communicating objects and classes that
are customized to solve a general design problem in a
particular context.” [Gamma et al.]
◮

Related Work
Methodology
Ingredient: Knowledge Base

◮

Ingredient: GQM

◮

Process Summary

Increased reusability, improved maintainability and
comprehensibility
Increasing number of DPs → Better quality
Inappropriate use → Complexity

Primary Level

Experiment
User Session

Recommendation Systems

Summary
Comparison

◮

Conclusion

◮

5 / 21

Recommendation systems → Information filtering
systems
Collaborative, content-based filtering (primary level)
and Hybrid (secondary level)
Recommendation
System for Design
Patterns in
Software
Development

Introduction

Outline
Introduction

Our Goal

Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

◮

◮

Methodology
Ingredient: Knowledge Base

The purpose of our work is to propose a Design
Pattern Recommender (DPR) system
Help designers by minimizing their effort to choose
design patterns

Ingredient: GQM
Process Summary
Primary Level

Experiment

◮

Our solution is two-fold
◮

User Session
Summary
Comparison

Conclusion

6 / 21

◮

Recommend a design pattern for a context
(primary-level)
Recommend one(more) design pattern(s) for a system
given its initial design (secondary-level, future work)
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

7 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Related Work
ReBuilder [1]

Outline

◮

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

◮
◮

Related Work
Methodology
Ingredient: Knowledge Base

Case-based reasoning approach, cases described with
class diagrams
Such diagrams are not always available
Human and machine readable pattern format

ESSDP [2]

Ingredient: GQM
Process Summary

◮

Primary Level

◮
Experiment
User Session

◮

Summary

Uses an interactive session with the designer
Uses a knowledge base
Requires too many questions to choose a pattern

Comparison

Conclusion

Recommender System [3]
◮
◮
◮

8 / 21

Uses textual descriptions of patterns
No user feedback
Suitable for small systems
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

9 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Outline

Methodology
Ingredient: Knowledge Base

◮

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

10 / 21

◮

Root of XML is a design pattern category (e.g.,
Creational)
Child nodes are design patterns (e.g., Adapter)
Recommendation
System for Design
Patterns in
Software
Development

Methodology
Ingredient: GQM
◮

Outline

◮

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

◮

Goal: Pattern names
Questions: 2-layered questions, i.e., conditions &
sub-conditions
Metric: Apply a weighting scheme
◮
◮

Answer ∈ {‘yes’, ‘no’ or ‘do not know’}, with a weight
1 ≤ weights ≤ 9

Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

n
Pattern Name Tot Weight =∀Applicability
i =1
where, i = j & i ≥ 1, j ≥ 1

11 / 21

n
Weight Pattern Name i Yes Score +
Weight Pattern Name j No Score
j =1
Recommendation
System for Design
Patterns in
Software
Development

Methodology
Process Summary

Introduction
Motivating Scenario

Process

Output

Pattern Knowledge
Base

Questionnaire using
GQM model

Recommended design
pattern

User Knowledge
(Experience)

Application of
weighting scheme

Input

Outline
Level 1
(Primary)

Design Patterns and
Recommendation Systems

Related Work

Scoring and ranking

Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session

Level 2*
(Secondary)

Level 1 Inputs

Refactoring package
design

Refactored system
*
packages

+
Initial designs

Summary
Comparison

Conclusion

12 / 21

Secondary Level Recommendation: Detail methodological
overview and implementation as future works.
Recommendation
System for Design
Patterns in
Software
Development

Methodology
Primary Level

Outline
Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

◮ DPR is a selection type of expert system
◮ We use a ranking based selection approach
◮ Suggestion segment includes interactive session, calculate weights,

and assign ranks
13 / 21
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

14 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Outline
Introduction

Experiment
Context
◮

Motivating Scenario
Design Patterns and
Recommendation Systems

◮
Related Work

◮

Methodology
Ingredient: Knowledge Base
Ingredient: GQM

◮

Process Summary

A develops a program to display details about its
product in the Console using an Iterator
A outsource Product back-end system to B
B gives back a system that return products as an
Enumeration
Enumeration is a problem for A’s system

Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

Characteristics
◮

8 users as Subjects (6 Grad. Students, 1 Professional
Developer, 1 IT Analyst)
3 design patterns (Adapter, Visitor, Decorator)

◮
◮ 3 other approaches for comparison (ESSDP, ReBuilder, Recommender
System)

15 / 21
Recommendation
System for Design
Patterns in
Software
Development

Outline
Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

16 / 21

Experiment
User Session
Questions
Response
1. Do you need to use several
yes
existing subclasses?
2. Do you want to create a reusable
yes
class?
3. Do you want to use existing class?
yes
4. Do you want to perform
no
operations on objects?
5. Do you want to avoid polluting
yes
classes with new operations?
6. Do you want to define new
no
operations over the structure?
7. Do you want to add
no
responsibilities to individual objects
dynamically without affecting other?
8. Do you want to use class for
no
responsibilities that can be
withdrawn?
9. Is the extension by subclassing is
no
impractical for your problem?
10. Do you want your clients to be
able to ignore different compositions
of objects and individual objects?
11. Do you want to represent
yes
part-whole hierarchies of objects?
Total weight given by the designer

Weight
8

Adapter
8

Visitor
-

Decorator
-

8

8

-

-

9
4

9
4

9
-

9
4

7

-

7

-

6

6

-

-

7

7

7

-

9

9

9

-

8

8

8

-

0

0

0

0

7

-

-

-

71

59

40

13
Recommendation
System for Design
Patterns in
Software
Development

Experiment
Summary

Outline
Introduction

Summary of eight users’ response on DPR:

Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment

Subject
1
2
3
4
5
6
7
8

User Session
Summary
Comparison

Conclusion

17 / 21

Summary

OO-Level
medium
beginner
advanced
medium
advanced
advanced
medium
advanced

DP-Level
beginner
beginner
medium
beginner
medium
medium
low
beginner

Questions
11
11
10
11
11
11
11
11

Tot.Weight
≥51
≥51
≤50
≥51
≤50
≤50
≤50
≤50

Pattern
Adapter
Visitor
Adapter
both
Adapter
Visitor
Visitor
Visitor

beginner
12.5%
medium
37.5%
advanced
50%

low
12.5%
beginner
50%
medium
37.5%

Questions≤5
0%
Questions≥6
100%

≤50
62.5%
≥51
37.5%

succeed
50
failed
50
Recommendation
System for Design
Patterns in
Software
Development

Outline

Experiment
Comparison

- DPR has less number of questions than ESSDP

Approach

Use of Textual Desc.

Use of Ranking

Weighting Scheme

Knowledge Base

User Session

Relevance Score

Certainity≥50%

Pattern Details Shown

Readable Pattern Format

Runtime Reasoning

Introduction

DPR











#







#

ESSDP

#



#















ReBuilder

-



#





#

-

#





Recommerder
System





#

#

#



-



-

#

Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

18 / 21
Recommendation
System for Design
Patterns in
Software
Development

Outline

Table of Contents

Introduction

Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM

Methodology

Process Summary
Primary Level

Experiment
User Session

Experiment

Summary
Comparison

Conclusion

19 / 21

Conclusion
Recommendation
System for Design
Patterns in
Software
Development

Conclusion
Conclusion

Outline

◮

Introduction
Motivating Scenario

An interactive DPR prototype for suggesting design
patterns
◮

Design Patterns and
Recommendation Systems

◮
Related Work

◮

Methodology

◮

Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

GQM approach
KB for pattern details and relative information

A sample interactive session with the designer
Preliminary evaluation of DPR by 8 subjects shows that
DPR is relatively effective than ESSDP in terms of less
number of questions

Experiment
User Session
Summary

Future Work

Comparison

◮
Conclusion

◮

◮
20 / 21

All 23 design patterns identified by Gamma et al., and
more
A complete interactive tool for both primary and
secondary level
More empirical studies
Recommendation
System for Design
Patterns in
Software
Development

Thank You...
Outline
Introduction
Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

21 / 21

◮

Questions...?
Recommendation
System for Design
Patterns in
Software
Development

Outline
Introduction

[1] P. Gomes, F. C. Pereira, P. Paiva, N. Seco, P. Carreiro, Jos´ Luis
e
Ferreira and Carlos Bento 2002. Using CBR for Automation of Software
Design Patterns. In Proceedings of the 6th European Conference on
Advances in Case-Based Reasoning, pp:534-548.
[2] R. S. David C. Kung, H. Bhambhani and G. Pancholi. An expert
system for suggesting design patterns - a methodology and a prototype.
In Software Engineering with Computational Intelligence, 2003.

Motivating Scenario
Design Patterns and
Recommendation Systems

Related Work
Methodology
Ingredient: Knowledge Base
Ingredient: GQM
Process Summary
Primary Level

Experiment
User Session
Summary
Comparison

Conclusion

21 / 21

[3] Y. G. Gu´h´neuc, and M. Rabih. A Simple Recommender System for
e e
Design Patterns, Proceedings of the 1st EuroPLoP Focus Group on
Pattern Repositories (2007)

Más contenido relacionado

La actualidad más candente

ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
Ptidej Team
 
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
Takanori Suzuki
 

La actualidad más candente (19)

Software testing
Software testingSoftware testing
Software testing
 
Istqb ctal tm
Istqb ctal tmIstqb ctal tm
Istqb ctal tm
 
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSQUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
 
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...
 
Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...
Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...
Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...
 
Effect of refactoring on software quality
Effect of refactoring on software qualityEffect of refactoring on software quality
Effect of refactoring on software quality
 
130905 francis palma - detection of process antipatterns - a bpel perspective
130905   francis palma - detection of process antipatterns - a bpel perspective130905   francis palma - detection of process antipatterns - a bpel perspective
130905 francis palma - detection of process antipatterns - a bpel perspective
 
TOOLS USA01.ppt
TOOLS USA01.pptTOOLS USA01.ppt
TOOLS USA01.ppt
 
ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
 
Systematic review on evaluating planning process in agile development methods
Systematic review on evaluating planning process in agile development methodsSystematic review on evaluating planning process in agile development methods
Systematic review on evaluating planning process in agile development methods
 
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
 
ThesisPresentation
ThesisPresentationThesisPresentation
ThesisPresentation
 
33136 eval forms en
33136 eval forms en33136 eval forms en
33136 eval forms en
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)
 
Software project management
Software project managementSoftware project management
Software project management
 
Mini Project- Personal Multimedia Portfolio
Mini Project- Personal Multimedia PortfolioMini Project- Personal Multimedia Portfolio
Mini Project- Personal Multimedia Portfolio
 
Oplæg til gruppearbejde af Michael B. Skov, AAU
Oplæg til gruppearbejde af Michael B. Skov, AAUOplæg til gruppearbejde af Michael B. Skov, AAU
Oplæg til gruppearbejde af Michael B. Skov, AAU
 
Quality Assurance of the Web2LLP
Quality Assurance of the Web2LLPQuality Assurance of the Web2LLP
Quality Assurance of the Web2LLP
 
Advanced quality control
Advanced quality controlAdvanced quality control
Advanced quality control
 

Destacado

Destacado (19)

Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdf
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
 
Wcre12b.ppt
Wcre12b.pptWcre12b.ppt
Wcre12b.ppt
 
Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.ppt
 
Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
See12.ppt
See12.pptSee12.ppt
See12.ppt
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Ssbse12a.ppt
Ssbse12a.pptSsbse12a.ppt
Ssbse12a.ppt
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Mribp13.ppt
Mribp13.pptMribp13.ppt
Mribp13.ppt
 
Wcre13c.pdf
Wcre13c.pdfWcre13c.pdf
Wcre13c.pdf
 
Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in Theory
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design Patterns
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in Practice
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 

Similar a Rsse12.ppt

CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptx
KhcThKhnhHuyn1T20ACN
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
Sharad Srivastava
 
Programming Theory
Programming TheoryProgramming Theory
Programming Theory
iarthur
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologies
UTeM
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment ppt
Shweta Ghate
 
9.process improvement chapter 9
9.process improvement chapter 99.process improvement chapter 9
9.process improvement chapter 9
Warui Maina
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)
Steve Feldman
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarking
Steve Feldman
 

Similar a Rsse12.ppt (20)

Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software Development
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptx
 
Chapter 2_Process Models sunorgamisedASE_finalised.ppt
Chapter 2_Process Models sunorgamisedASE_finalised.pptChapter 2_Process Models sunorgamisedASE_finalised.ppt
Chapter 2_Process Models sunorgamisedASE_finalised.ppt
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
 
Programming Theory
Programming TheoryProgramming Theory
Programming Theory
 
View Alignment Techniques
View Alignment TechniquesView Alignment Techniques
View Alignment Techniques
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologies
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment ppt
 
Syylabus
SyylabusSyylabus
Syylabus
 
Software Development for Processionals.ppt
Software Development for Processionals.pptSoftware Development for Processionals.ppt
Software Development for Processionals.ppt
 
9.process improvement chapter 9
9.process improvement chapter 99.process improvement chapter 9
9.process improvement chapter 9
 
Thesis Part II EMGT 699
Thesis Part II EMGT 699Thesis Part II EMGT 699
Thesis Part II EMGT 699
 
ProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy KatchowProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy Katchow
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE Lecture 2.ppt
SE Lecture 2.pptSE Lecture 2.ppt
SE Lecture 2.ppt
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarking
 

Más de Ptidej Team

Más de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Rsse12.ppt

  • 1. Recommendation System for Design Patterns in Software Development Outline Introduction Recommendation System for Design Patterns in Software Development Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base e e e Francis Palma1,2 , Hadi Farzin1, Yann-Ga¨l Gu´h´neuc1 , Naouel Moha2 Ingredient: GQM Process Summary Primary Level Experiment User Session 1 2 ´ Ecole Polytechnique de Montr´al, Canada e Universit´ du Qu´bec ` Montr´al, Canada e e a e Summary Comparison Conclusion 4 June 2012 Pattern Trace Identification, Detection, and Enhancement in Java SOftware Cost-effective Change and Evolution Research Lab
  • 2. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 2 / 21 Conclusion
  • 3. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 3 / 21 Conclusion
  • 4. Recommendation System for Design Patterns in Software Development Introduction Motivating Scenario First Scenario (Assumption 1) Outline Not reusable Introduction Motivating Scenario Expensive maintenance life Design Patterns and Recommendation Systems Poor performance/antipatterns Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 4 / 21 Designer Developer Produced System Hard for comprehension Low maintainability Hard for evolution
  • 5. Recommendation System for Design Patterns in Software Development Introduction Motivating Scenario First Scenario (Assumption 1) Outline Not reusable Introduction Motivating Scenario Expensive maintenance life Design Patterns and Recommendation Systems Poor performance/antipatterns Related Work Designer Developer Produced System Methodology Ingredient: Knowledge Base Hard for comprehension Low maintainability Hard for evolution Ingredient: GQM Process Summary Primary Level Experiment User Session Second Scenario (Assumption 2) Recommended Design Pattern Summary Comparison Reusable in a new problem Low cost maintenance Conclusion Good performance, no/less antipatterns Designer 4 / 21 Developer Produced System Easy for comprehension High maintainability Easy for evolution
  • 6. Recommendation System for Design Patterns in Software Development Outline Introduction Introduction Design Patterns and Recommendation Systems Design Patterns? ◮ Motivating Scenario Design Patterns and Recommendation Systems “Descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.” [Gamma et al.] ◮ Related Work Methodology Ingredient: Knowledge Base ◮ Ingredient: GQM ◮ Process Summary Increased reusability, improved maintainability and comprehensibility Increasing number of DPs → Better quality Inappropriate use → Complexity Primary Level Experiment User Session Recommendation Systems Summary Comparison ◮ Conclusion ◮ 5 / 21 Recommendation systems → Information filtering systems Collaborative, content-based filtering (primary level) and Hybrid (secondary level)
  • 7. Recommendation System for Design Patterns in Software Development Introduction Outline Introduction Our Goal Motivating Scenario Design Patterns and Recommendation Systems Related Work ◮ ◮ Methodology Ingredient: Knowledge Base The purpose of our work is to propose a Design Pattern Recommender (DPR) system Help designers by minimizing their effort to choose design patterns Ingredient: GQM Process Summary Primary Level Experiment ◮ Our solution is two-fold ◮ User Session Summary Comparison Conclusion 6 / 21 ◮ Recommend a design pattern for a context (primary-level) Recommend one(more) design pattern(s) for a system given its initial design (secondary-level, future work)
  • 8. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 7 / 21 Conclusion
  • 9. Recommendation System for Design Patterns in Software Development Related Work ReBuilder [1] Outline ◮ Introduction Motivating Scenario Design Patterns and Recommendation Systems ◮ ◮ Related Work Methodology Ingredient: Knowledge Base Case-based reasoning approach, cases described with class diagrams Such diagrams are not always available Human and machine readable pattern format ESSDP [2] Ingredient: GQM Process Summary ◮ Primary Level ◮ Experiment User Session ◮ Summary Uses an interactive session with the designer Uses a knowledge base Requires too many questions to choose a pattern Comparison Conclusion Recommender System [3] ◮ ◮ ◮ 8 / 21 Uses textual descriptions of patterns No user feedback Suitable for small systems
  • 10. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 9 / 21 Conclusion
  • 11. Recommendation System for Design Patterns in Software Development Outline Methodology Ingredient: Knowledge Base ◮ Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 10 / 21 ◮ Root of XML is a design pattern category (e.g., Creational) Child nodes are design patterns (e.g., Adapter)
  • 12. Recommendation System for Design Patterns in Software Development Methodology Ingredient: GQM ◮ Outline ◮ Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work ◮ Goal: Pattern names Questions: 2-layered questions, i.e., conditions & sub-conditions Metric: Apply a weighting scheme ◮ ◮ Answer ∈ {‘yes’, ‘no’ or ‘do not know’}, with a weight 1 ≤ weights ≤ 9 Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion n Pattern Name Tot Weight =∀Applicability i =1 where, i = j & i ≥ 1, j ≥ 1 11 / 21 n Weight Pattern Name i Yes Score + Weight Pattern Name j No Score j =1
  • 13. Recommendation System for Design Patterns in Software Development Methodology Process Summary Introduction Motivating Scenario Process Output Pattern Knowledge Base Questionnaire using GQM model Recommended design pattern User Knowledge (Experience) Application of weighting scheme Input Outline Level 1 (Primary) Design Patterns and Recommendation Systems Related Work Scoring and ranking Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Level 2* (Secondary) Level 1 Inputs Refactoring package design Refactored system * packages + Initial designs Summary Comparison Conclusion 12 / 21 Secondary Level Recommendation: Detail methodological overview and implementation as future works.
  • 14. Recommendation System for Design Patterns in Software Development Methodology Primary Level Outline Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion ◮ DPR is a selection type of expert system ◮ We use a ranking based selection approach ◮ Suggestion segment includes interactive session, calculate weights, and assign ranks 13 / 21
  • 15. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 14 / 21 Conclusion
  • 16. Recommendation System for Design Patterns in Software Development Outline Introduction Experiment Context ◮ Motivating Scenario Design Patterns and Recommendation Systems ◮ Related Work ◮ Methodology Ingredient: Knowledge Base Ingredient: GQM ◮ Process Summary A develops a program to display details about its product in the Console using an Iterator A outsource Product back-end system to B B gives back a system that return products as an Enumeration Enumeration is a problem for A’s system Primary Level Experiment User Session Summary Comparison Conclusion Characteristics ◮ 8 users as Subjects (6 Grad. Students, 1 Professional Developer, 1 IT Analyst) 3 design patterns (Adapter, Visitor, Decorator) ◮ ◮ 3 other approaches for comparison (ESSDP, ReBuilder, Recommender System) 15 / 21
  • 17. Recommendation System for Design Patterns in Software Development Outline Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 16 / 21 Experiment User Session Questions Response 1. Do you need to use several yes existing subclasses? 2. Do you want to create a reusable yes class? 3. Do you want to use existing class? yes 4. Do you want to perform no operations on objects? 5. Do you want to avoid polluting yes classes with new operations? 6. Do you want to define new no operations over the structure? 7. Do you want to add no responsibilities to individual objects dynamically without affecting other? 8. Do you want to use class for no responsibilities that can be withdrawn? 9. Is the extension by subclassing is no impractical for your problem? 10. Do you want your clients to be able to ignore different compositions of objects and individual objects? 11. Do you want to represent yes part-whole hierarchies of objects? Total weight given by the designer Weight 8 Adapter 8 Visitor - Decorator - 8 8 - - 9 4 9 4 9 - 9 4 7 - 7 - 6 6 - - 7 7 7 - 9 9 9 - 8 8 8 - 0 0 0 0 7 - - - 71 59 40 13
  • 18. Recommendation System for Design Patterns in Software Development Experiment Summary Outline Introduction Summary of eight users’ response on DPR: Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment Subject 1 2 3 4 5 6 7 8 User Session Summary Comparison Conclusion 17 / 21 Summary OO-Level medium beginner advanced medium advanced advanced medium advanced DP-Level beginner beginner medium beginner medium medium low beginner Questions 11 11 10 11 11 11 11 11 Tot.Weight ≥51 ≥51 ≤50 ≥51 ≤50 ≤50 ≤50 ≤50 Pattern Adapter Visitor Adapter both Adapter Visitor Visitor Visitor beginner 12.5% medium 37.5% advanced 50% low 12.5% beginner 50% medium 37.5% Questions≤5 0% Questions≥6 100% ≤50 62.5% ≥51 37.5% succeed 50 failed 50
  • 19. Recommendation System for Design Patterns in Software Development Outline Experiment Comparison - DPR has less number of questions than ESSDP Approach Use of Textual Desc. Use of Ranking Weighting Scheme Knowledge Base User Session Relevance Score Certainity≥50% Pattern Details Shown Readable Pattern Format Runtime Reasoning Introduction DPR # # ESSDP # # ReBuilder - # # - # Recommerder System # # # - - # Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 18 / 21
  • 20. Recommendation System for Design Patterns in Software Development Outline Table of Contents Introduction Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Methodology Process Summary Primary Level Experiment User Session Experiment Summary Comparison Conclusion 19 / 21 Conclusion
  • 21. Recommendation System for Design Patterns in Software Development Conclusion Conclusion Outline ◮ Introduction Motivating Scenario An interactive DPR prototype for suggesting design patterns ◮ Design Patterns and Recommendation Systems ◮ Related Work ◮ Methodology ◮ Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level GQM approach KB for pattern details and relative information A sample interactive session with the designer Preliminary evaluation of DPR by 8 subjects shows that DPR is relatively effective than ESSDP in terms of less number of questions Experiment User Session Summary Future Work Comparison ◮ Conclusion ◮ ◮ 20 / 21 All 23 design patterns identified by Gamma et al., and more A complete interactive tool for both primary and secondary level More empirical studies
  • 22. Recommendation System for Design Patterns in Software Development Thank You... Outline Introduction Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 21 / 21 ◮ Questions...?
  • 23. Recommendation System for Design Patterns in Software Development Outline Introduction [1] P. Gomes, F. C. Pereira, P. Paiva, N. Seco, P. Carreiro, Jos´ Luis e Ferreira and Carlos Bento 2002. Using CBR for Automation of Software Design Patterns. In Proceedings of the 6th European Conference on Advances in Case-Based Reasoning, pp:534-548. [2] R. S. David C. Kung, H. Bhambhani and G. Pancholi. An expert system for suggesting design patterns - a methodology and a prototype. In Software Engineering with Computational Intelligence, 2003. Motivating Scenario Design Patterns and Recommendation Systems Related Work Methodology Ingredient: Knowledge Base Ingredient: GQM Process Summary Primary Level Experiment User Session Summary Comparison Conclusion 21 / 21 [3] Y. G. Gu´h´neuc, and M. Rabih. A Simple Recommender System for e e Design Patterns, Proceedings of the 1st EuroPLoP Focus Group on Pattern Repositories (2007)