SlideShare a Scribd company logo
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)

More Related Content

PDF
Research Activities: past, present, and future.
PPTX
02 fse processmodels
PDF
Ranking The Refactoring Techniques Based on The External Quality Attributes
PPTX
DOE, Design Of Experiments, DoE Training, Learn How To Use DoE, Taguchi DOE
PDF
10.1.1.124.4940
PDF
Check upload1
DOCX
Ashwin Kumar_MSE 697 Final
PDF
Influence of the population structure on the performance of an Agent-Based Ev...
Research Activities: past, present, and future.
02 fse processmodels
Ranking The Refactoring Techniques Based on The External Quality Attributes
DOE, Design Of Experiments, DoE Training, Learn How To Use DoE, Taguchi DOE
10.1.1.124.4940
Check upload1
Ashwin Kumar_MSE 697 Final
Influence of the population structure on the performance of an Agent-Based Ev...

What's hot (19)

PDF
Software testing
PDF
Istqb ctal tm
PDF
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
PDF
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...
PPTX
Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...
PDF
Effect of refactoring on software quality
PDF
130905 francis palma - detection of process antipatterns - a bpel perspective
PDF
TOOLS USA01.ppt
PDF
ECOOP05 QAOOSEb.ppt
PDF
Systematic review on evaluating planning process in agile development methods
DOC
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
PPTX
ThesisPresentation
PDF
33136 eval forms en
PPT
Software Engineering (Introduction)
PDF
Software project management
PPT
Oplæg til gruppearbejde af Michael B. Skov, AAU
PPT
Quality Assurance of the Web2LLP
PPTX
Advanced quality control
Software testing
Istqb ctal tm
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...
Unit4 Proof of Correctness, Statistical Tools, Clean Room Process and Quality...
Effect of refactoring on software quality
130905 francis palma - detection of process antipatterns - a bpel perspective
TOOLS USA01.ppt
ECOOP05 QAOOSEb.ppt
Systematic review on evaluating planning process in agile development methods
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
ThesisPresentation
33136 eval forms en
Software Engineering (Introduction)
Software project management
Oplæg til gruppearbejde af Michael B. Skov, AAU
Quality Assurance of the Web2LLP
Advanced quality control
Ad

Viewers also liked (19)

PDF
Icsm07 tooldemo.pdf
PDF
Ssbse12b.ppt
PDF
Wcre12b.ppt
PDF
Wcre12c.ppt
PDF
Ppap13a.ppt
PDF
See12.ppt
PDF
Wcre13b.ppt
PDF
Ssbse12a.ppt
PDF
Icsoc12 tooldemo.ppt
PDF
MSR Asia Summit
PDF
Mribp13.ppt
PDF
Wcre13c.pdf
PDF
Ppap13b.ppt
PDF
Wcre13a.ppt
PDF
Software Design Patterns in Theory
PDF
Quality and Software Design Patterns
PDF
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
PDF
Software Design Patterns in Practice
PDF
Jcom02.ppt
Icsm07 tooldemo.pdf
Ssbse12b.ppt
Wcre12b.ppt
Wcre12c.ppt
Ppap13a.ppt
See12.ppt
Wcre13b.ppt
Ssbse12a.ppt
Icsoc12 tooldemo.ppt
MSR Asia Summit
Mribp13.ppt
Wcre13c.pdf
Ppap13b.ppt
Wcre13a.ppt
Software Design Patterns in Theory
Quality and Software Design Patterns
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
Software Design Patterns in Practice
Jcom02.ppt
Ad

Similar to Rsse12.ppt (20)

PDF
PDF
Recommendation System for Design Patterns in Software Development
PPTX
Software Architecture and Design -Development process
PPTX
Design systems
PPTX
Software Design Concepts
PDF
Interaction Design Patterns in Recommender Systems
PDF
Software design.edited (1)
PPT
Kelis king - software development life cycle (sdlc)
PPT
Kelis king - software development life cycle (sdlc)
PDF
PPTX
Software Engineer- A unity 3d Game
PDF
Ecoop05 qaoos eb.ppt
DOCX
Function Oriented and Object Oriented Design,Modularization techniques
PPTX
chapter 1 software design.pptx
PPT
SE_models_1.ppt
PPT
SE_models_1.ppt
PPT
SE_models_1.ppt
PPT
SE_models_1.ppt
PPT
Chapter 09
PPT
SE Unit-3-2.ppt summer doors emraan dress
Recommendation System for Design Patterns in Software Development
Software Architecture and Design -Development process
Design systems
Software Design Concepts
Interaction Design Patterns in Recommender Systems
Software design.edited (1)
Kelis king - software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)
Software Engineer- A unity 3d Game
Ecoop05 qaoos eb.ppt
Function Oriented and Object Oriented Design,Modularization techniques
chapter 1 software design.pptx
SE_models_1.ppt
SE_models_1.ppt
SE_models_1.ppt
SE_models_1.ppt
Chapter 09
SE Unit-3-2.ppt summer doors emraan dress

More from Ptidej Team (20)

PDF
From IoT to Software Miniaturisation
PDF
Presentation
PDF
Presentation
PDF
Presentation
PDF
Presentation by Lionel Briand
PDF
Manel Abdellatif
PDF
Azadeh Kermansaravi
PDF
Mouna Abidi
PDF
CSED - Manel Grichi
PDF
Cristiano Politowski
PDF
Will io t trigger the next software crisis
PDF
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
Thesis+of+nesrine+abdelkafi.ppt
PDF
Medicine15.ppt
PDF
Qrs17b.ppt
PDF
Icpc11c.ppt
PDF
Icsme16.ppt
PDF
Msr17a.ppt
PDF
Icsoc15.ppt
From IoT to Software Miniaturisation
Presentation
Presentation
Presentation
Presentation by Lionel Briand
Manel Abdellatif
Azadeh Kermansaravi
Mouna Abidi
CSED - Manel Grichi
Cristiano Politowski
Will io t trigger the next software crisis
Thesis+of+laleh+eshkevari.ppt
Thesis+of+nesrine+abdelkafi.ppt
Medicine15.ppt
Qrs17b.ppt
Icpc11c.ppt
Icsme16.ppt
Msr17a.ppt
Icsoc15.ppt

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Approach and Philosophy of On baking technology
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
A Presentation on Touch Screen Technology
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
Hybrid model detection and classification of lung cancer
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
Tartificialntelligence_presentation.pptx
Group 1 Presentation -Planning and Decision Making .pptx
1 - Historical Antecedents, Social Consideration.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
A Presentation on Artificial Intelligence
Approach and Philosophy of On baking technology
Heart disease approach using modified random forest and particle swarm optimi...
DP Operators-handbook-extract for the Mautical Institute
A comparative study of natural language inference in Swahili using monolingua...
A novel scalable deep ensemble learning framework for big data classification...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
TLE Review Electricity (Electricity).pptx
A Presentation on Touch Screen Technology
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Mushroom cultivation and it's methods.pdf
Hybrid model detection and classification of lung cancer
SOPHOS-XG Firewall Administrator PPT.pptx
Tartificialntelligence_presentation.pptx

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)