ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Can We Automatically Generate Class
Comments in Pharo?
Pooja Rani, Alexandre Bergel, 

Lino Hess, Timo Kehrer, Oscar Nierstrasz
University of Bern, Switzerland
Ìý
International Workshop on Smalltalk Technologies,


Novi Sad, Serbia, 2022
2
3
High-quality code comments assist developers
4
Developers find writing comments a boring and effort-intensive task
5
To support developers in writing comments,
communities suggest coding guidelines
Apache
Oracle
Google Pharo
PEP8/257
6
To support developers in writing comments,
communities suggest coding guidelines
Apache
Oracle
Google Pharo
PEP8/257
7
To support developers in writing comments,
communities suggest coding guidelines
Apache
Oracle
Google Pharo
PEP8/257
8
To support developers in writing comments,
communities suggest coding guidelines
Apache
Oracle
Google Pharo
PEP8/257
9
- Rani et al., Empirical Software Engineering, 2021
Developers follow template inspired information types more often
To support developers in writing comments,
communities suggest coding guidelines
Apache
Oracle
Google Pharo
PEP8/257
10
Color scale according to number of comments falling into a category
0 25 52
0 26 52
1 (52)
2 (52)
3 (52)
4 (52)
5 (52)
6 (52)
7 (52)
O
t
h
e
r
L
i
c
e
n
s
e
D
e
p
e
n
d
e
n
c
i
e
s
C
o
n
t
r
a
c
t
s
O
b
s
e
r
v
a
t
i
o
n
s
R
e
c
o
m
m
e
n
d
a
t
i
o
n
s
E
x
t
e
n
s
i
o
s
L
i
n
k
s
D
i
s
c
o
u
r
s
e
W
a
r
n
i
n
g
s
C
o
d
i
n
g
G
u
i
d
e
l
i
n
e
s
N
a
m
i
n
g
C
o
n
v
e
n
t
i
o
n
s
T
o
d
o
c
o
m
m
e
n
t
s
C
l
a
s
s
R
e
f
e
r
e
n
c
e
s
S
u
b
c
l
a
s
s
e
s
E
x
p
l
a
n
a
t
i
o
n
R
e
f
e
r
e
n
c
e
O
t
h
e
r
R
e
s
o
u
r
c
e
s
I
m
p
l
e
m
e
n
t
a
t
i
o
n
P
o
i
n
t
s
E
x
a
m
p
l
e
s
K
e
y
M
e
s
s
a
g
e
s
I
n
s
t
a
n
c
e
V
a
r
i
a
b
l
e
s
C
o
l
l
a
b
a
r
t
o
r
s
R
e
s
p
o
n
s
i
b
i
l
i
t
y
I
n
t
e
n
t
Categories
Pharo
versions
(total
classes)
Developers follow template inspired information types more often
- Rani et al., Empirical Software Engineering, 2021
11
Can we automatically generate these information types?
Color scale according to number of comments falling into a category
0 25 52
0 26 52
1 (52)
2 (52)
3 (52)
4 (52)
5 (52)
6 (52)
7 (52)
O
t
h
e
r
L
i
c
e
n
s
e
D
e
p
e
n
d
e
n
c
i
e
s
C
o
n
t
r
a
c
t
s
O
b
s
e
r
v
a
t
i
o
n
s
R
e
c
o
m
m
e
n
d
a
t
i
o
n
s
E
x
t
e
n
s
i
o
s
L
i
n
k
s
D
i
s
c
o
u
r
s
e
W
a
r
n
i
n
g
s
C
o
d
i
n
g
G
u
i
d
e
l
i
n
e
s
N
a
m
i
n
g
C
o
n
v
e
n
t
i
o
n
s
T
o
d
o
c
o
m
m
e
n
t
s
C
l
a
s
s
R
e
f
e
r
e
n
c
e
s
S
u
b
c
l
a
s
s
e
s
E
x
p
l
a
n
a
t
i
o
n
R
e
f
e
r
e
n
c
e
O
t
h
e
r
R
e
s
o
u
r
c
e
s
I
m
p
l
e
m
e
n
t
a
t
i
o
n
P
o
i
n
t
s
E
x
a
m
p
l
e
s
K
e
y
M
e
s
s
a
g
e
s
I
n
s
t
a
n
c
e
V
a
r
i
a
b
l
e
s
C
o
l
l
a
b
a
r
t
o
r
s
R
e
s
p
o
n
s
i
b
i
l
i
t
y
I
n
t
e
n
t
Categories
Pharo
versions
(total
classes)
12
Objects are responsible members of an
object community
Rebecca Wirfs-Brock
Object role stereotypes in 1992 in a Smalltalk Report article
13
Objects are responsible members of an
object community
Rebecca Wirfs-Brock
Object role stereotypes in 1992 in a Smalltalk Report article
14
Controller
Coordinator
Structure
Interface
Information holder
Objects are responsible members of an
object community
Rebecca Wirfs-Brock
Object role stereotypes in 1992 in a Smalltalk Report article
15
Controller
Coordinator
Structure
Interface
Information holder
Objects are responsible members of an
object community
Object role stereotypes in 1992 in a Smalltalk Report article
Stereotype-based approach
16
Previous works
17
Previous works
18
Previous works
19
Previous works
20
Methodology Dataset
Can We Automatically Generate Class Comments in
Pharo?
Previous works
21
Methodology
Identify


class stereotype
Identify method
stereotypes
Pharo 8 Extract


method information
Extract


class


information
Fill


template
1 2 3 4 5
22
• Accessor
• Getter
• Mutator
• Setter
• Creational
• Collaborator
• Degnerate
• Controller
Method Stereotypes
1
23
4%
4%
4%
5%
10%
16%
28%
33%
Set
Get
Controller
Creational
Mutator
Degenerate
Collaborator
Accessor
Distribution of Stereotypes
• Accessor
• Getter
• Mutator
• Setter
• Creational
• Collaborator
• Degnerate
• Controller
Method Stereotypes
1
24
• Entity
• Minimal Entity
• Data Provider
• Commander
• Boundary
• Factory
• Empty
• Small
• Controller
• Pure Controller
• Large
• Lazy
• Degenerate
• Data
Class Stereotypes
2
4%
4%
4%
5%
10%
16%
28%
33%
Set
Get
Controller
Creational
Mutator
Degenerate
Collaborator
Accessor
• Accessor
• Getter
• Mutator
• Setter
• Creational
• Collaborator
• Degnerate
• Controller
Method Stereotypes
1
Distribution of Stereotypes
25
0%
1%
2%
2%
2%
2%
2%
3%
5%
6%
7%
9%
23%
42%
PureController
Lazy
Controller
Data
Entity
Factory
MinimalEntity
Empty
Commander
Small
Large
Degenerate
Boundary
DataProvider
4%
4%
4%
5%
10%
16%
28%
33%
Set
Get
Controller
Creational
Mutator
Degenerate
Collaborator
Accessor
• Entity
• Minimal Entity
• Data Provider
• Commander
• Boundary
• Factory
• Empty
• Small
• Controller
• Pure Controller
• Large
• Lazy
• Degenerate
• Data
Class Stereotypes
2
• Accessor
• Getter
• Mutator
• Setter
• Creational
• Collaborator
• Degnerate
• Controller
Method Stereotypes
1
Distribution of Stereotypes
26
• Entity
• Minimal Entity
• Data Provider
• Commander
• Boundary
• Factory
• Empty
• Small
• Controller
• Pure Controller
• Large
• Lazy
• Degenerate
• Data
Class Stereotypes
2
• Accessor
• Getter
• Mutator
• Setter
• Creational
• Collaborator
• Degnerate
• Controller
Method Stereotypes
1
27
Small
Controller
Pure Controller
Large
Lazy
Degenerate
Data
otypes
reational
ollaborator
egnerate
ontroller
eotypes
28
• External used methods
• Internally used methods
Method Information
3
• Class name
• Class stereotype description
• Classes used by the class
• Dependent classes
• Relevant keywords
Class Information
4
Small
Controller
Pure Controller
Large
Lazy
Degenerate
Data
otypes
reational
ollaborator
egnerate
ontroller
eotypes
29
• External used methods
• Internally used methods
Method Information
3
• Class name
• Class stereotype description
• Classes used by the class
• Dependent classes
• Relevant keywords
Class Information
4
Small
Controller
Pure Controller
Large
Lazy
Degenerate
Data
otypes
reational
ollaborator
egnerate
ontroller
eotypes
30
• External used methods
• Internally used methods
Method Information
3
• Class name
• Class stereotype description
• Classes used by the class
• Dependent classes
• Relevant keywords
Class Information
4
Small
Controller
Pure Controller
Large
Lazy
Degenerate
Data
otypes
reational
ollaborator
egnerate
ontroller
eotypes
31
24 class comments (auto generated)
3 developers: each comment evaluated by three
42 evaluations: 7 developers completed it
3 metrics: Adequacy, Conciseness, Comprehensibility
Evaluation
32
Evaluation
Adequacy: 44% participants said the comment is missing some important information
33
Conciseness- 54% participants said the comment contains a lot of
unnecessary information
Evaluation
Adequacy: 44% participants said the comment is missing some important information
Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?

More Related Content

Similar to Can We Automatically Generate Class Comments in Pharo? (20)

Tool up your lamp stack
Tool up your lamp stackTool up your lamp stack
Tool up your lamp stack
AgileOnTheBeach
Ìý
Tool Up Your LAMP Stack
Tool Up Your LAMP StackTool Up Your LAMP Stack
Tool Up Your LAMP Stack
Lorna Mitchell
Ìý
Characterizing Defective Configuration Scripts Used for Continuous Deployment
Characterizing Defective Configuration Scripts Used for Continuous DeploymentCharacterizing Defective Configuration Scripts Used for Continuous Deployment
Characterizing Defective Configuration Scripts Used for Continuous Deployment
Akond Rahman
Ìý
Importance of Solution Architecture in Automation
Importance of Solution Architecture in AutomationImportance of Solution Architecture in Automation
Importance of Solution Architecture in Automation
Cristina Vidu
Ìý
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
Dave Haeffner
Ìý
Reproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects helpReproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects help
Carole Goble
Ìý
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Grace Jansen
Ìý
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
Jen Aman
Ìý
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
Dominik Lukes
Ìý
RA21: An Update on RA21
RA21: An Update on RA21RA21: An Update on RA21
RA21: An Update on RA21
National Information Standards Organization (NISO)
Ìý
Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
The University of Adelaide
Ìý
Rails tools
Rails toolsRails tools
Rails tools
Reuven Lerner
Ìý
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
Moreyeahs
Ìý
SUGCON 2015 Modelling
SUGCON 2015 ModellingSUGCON 2015 Modelling
SUGCON 2015 Modelling
Glasslu
Ìý
OWASP Testing Guide v3
OWASP Testing Guide v3OWASP Testing Guide v3
OWASP Testing Guide v3
Rastislav Turek
Ìý
Owasp Eu Summit 2008 Owasp Testing Guide V3
Owasp Eu Summit 2008 Owasp Testing Guide V3Owasp Eu Summit 2008 Owasp Testing Guide V3
Owasp Eu Summit 2008 Owasp Testing Guide V3
Matteo Meucci
Ìý
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG: connecting the knowledge community
Ìý
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Vimal Suba
Ìý
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
ConSanFrancisco123
Ìý
DataONE_Guided Metadata Improvement
DataONE_Guided Metadata ImprovementDataONE_Guided Metadata Improvement
DataONE_Guided Metadata Improvement
Lindsay Powers
Ìý
Tool up your lamp stack
Tool up your lamp stackTool up your lamp stack
Tool up your lamp stack
AgileOnTheBeach
Ìý
Tool Up Your LAMP Stack
Tool Up Your LAMP StackTool Up Your LAMP Stack
Tool Up Your LAMP Stack
Lorna Mitchell
Ìý
Characterizing Defective Configuration Scripts Used for Continuous Deployment
Characterizing Defective Configuration Scripts Used for Continuous DeploymentCharacterizing Defective Configuration Scripts Used for Continuous Deployment
Characterizing Defective Configuration Scripts Used for Continuous Deployment
Akond Rahman
Ìý
Importance of Solution Architecture in Automation
Importance of Solution Architecture in AutomationImportance of Solution Architecture in Automation
Importance of Solution Architecture in Automation
Cristina Vidu
Ìý
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
Dave Haeffner
Ìý
Reproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects helpReproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects help
Carole Goble
Ìý
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Grace Jansen
Ìý
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
Jen Aman
Ìý
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
Dominik Lukes
Ìý
Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
The University of Adelaide
Ìý
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
Moreyeahs
Ìý
SUGCON 2015 Modelling
SUGCON 2015 ModellingSUGCON 2015 Modelling
SUGCON 2015 Modelling
Glasslu
Ìý
OWASP Testing Guide v3
OWASP Testing Guide v3OWASP Testing Guide v3
OWASP Testing Guide v3
Rastislav Turek
Ìý
Owasp Eu Summit 2008 Owasp Testing Guide V3
Owasp Eu Summit 2008 Owasp Testing Guide V3Owasp Eu Summit 2008 Owasp Testing Guide V3
Owasp Eu Summit 2008 Owasp Testing Guide V3
Matteo Meucci
Ìý
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG webinar: Authentication technology update: RA21 and OpenAthens with Josh...
UKSG: connecting the knowledge community
Ìý
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Vimal Suba
Ìý
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
ConSanFrancisco123
Ìý
DataONE_Guided Metadata Improvement
DataONE_Guided Metadata ImprovementDataONE_Guided Metadata Improvement
DataONE_Guided Metadata Improvement
Lindsay Powers
Ìý

More from Pooja Rani (9)

Energy Patterns for Web: An Exploratory Study
Energy Patterns for Web: An Exploratory StudyEnergy Patterns for Web: An Exploratory Study
Energy Patterns for Web: An Exploratory Study
Pooja Rani
Ìý
A Decade of Comment Quality Assessment: A Systematic Literature Review
A Decade of Comment Quality Assessment: A Systematic Literature ReviewA Decade of Comment Quality Assessment: A Systematic Literature Review
A Decade of Comment Quality Assessment: A Systematic Literature Review
Pooja Rani
Ìý
What do class comments tell us?An investigation of comment evolution and prac...
What do class comments tell us?An investigation of comment evolution and prac...What do class comments tell us?An investigation of comment evolution and prac...
What do class comments tell us?An investigation of comment evolution and prac...
Pooja Rani
Ìý
How to Identify Class Comment Types? A Multi-language Approach for Class Com...
How to Identify Class Comment Types?  A Multi-language Approach for Class Com...How to Identify Class Comment Types?  A Multi-language Approach for Class Com...
How to Identify Class Comment Types? A Multi-language Approach for Class Com...
Pooja Rani
Ìý
PhD defense presenation
PhD defense presenationPhD defense presenation
PhD defense presenation
Pooja Rani
Ìý
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessment
Pooja Rani
Ìý
Let linguistics guide software analysis
Let linguistics guide software analysisLet linguistics guide software analysis
Let linguistics guide software analysis
Pooja Rani
Ìý
Comment soup with a pinch of types
Comment soup with a pinch of typesComment soup with a pinch of types
Comment soup with a pinch of types
Pooja Rani
Ìý
Software Analysis using Natural Language Queries
Software Analysis using Natural Language QueriesSoftware Analysis using Natural Language Queries
Software Analysis using Natural Language Queries
Pooja Rani
Ìý
Energy Patterns for Web: An Exploratory Study
Energy Patterns for Web: An Exploratory StudyEnergy Patterns for Web: An Exploratory Study
Energy Patterns for Web: An Exploratory Study
Pooja Rani
Ìý
A Decade of Comment Quality Assessment: A Systematic Literature Review
A Decade of Comment Quality Assessment: A Systematic Literature ReviewA Decade of Comment Quality Assessment: A Systematic Literature Review
A Decade of Comment Quality Assessment: A Systematic Literature Review
Pooja Rani
Ìý
What do class comments tell us?An investigation of comment evolution and prac...
What do class comments tell us?An investigation of comment evolution and prac...What do class comments tell us?An investigation of comment evolution and prac...
What do class comments tell us?An investigation of comment evolution and prac...
Pooja Rani
Ìý
How to Identify Class Comment Types? A Multi-language Approach for Class Com...
How to Identify Class Comment Types?  A Multi-language Approach for Class Com...How to Identify Class Comment Types?  A Multi-language Approach for Class Com...
How to Identify Class Comment Types? A Multi-language Approach for Class Com...
Pooja Rani
Ìý
PhD defense presenation
PhD defense presenationPhD defense presenation
PhD defense presenation
Pooja Rani
Ìý
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessment
Pooja Rani
Ìý
Let linguistics guide software analysis
Let linguistics guide software analysisLet linguistics guide software analysis
Let linguistics guide software analysis
Pooja Rani
Ìý
Comment soup with a pinch of types
Comment soup with a pinch of typesComment soup with a pinch of types
Comment soup with a pinch of types
Pooja Rani
Ìý
Software Analysis using Natural Language Queries
Software Analysis using Natural Language QueriesSoftware Analysis using Natural Language Queries
Software Analysis using Natural Language Queries
Pooja Rani
Ìý

Recently uploaded (20)

CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7
Ìý
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptxRAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
JenTeruel1
Ìý
Multi objective genetic approach with Ranking
Multi objective genetic approach with RankingMulti objective genetic approach with Ranking
Multi objective genetic approach with Ranking
namisha18
Ìý
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
slayshadow705
Ìý
US Patented ReGenX Generator, ReGen-X Quatum Motor EV Regenerative Accelerati...
US Patented ReGenX Generator, ReGen-X Quatum Motor EV Regenerative Accelerati...US Patented ReGenX Generator, ReGen-X Quatum Motor EV Regenerative Accelerati...
US Patented ReGenX Generator, ReGen-X Quatum Motor EV Regenerative Accelerati...
Thane Heins NOBEL PRIZE WINNING ENERGY RESEARCHER
Ìý
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
Ìý
only history of java.pptx real bihind the name java
only history of java.pptx real bihind the name javaonly history of java.pptx real bihind the name java
only history of java.pptx real bihind the name java
mushtaqsaliq9
Ìý
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Ìý
Env and Water Supply Engg._Dr. Hasan.pdf
Env and Water Supply Engg._Dr. Hasan.pdfEnv and Water Supply Engg._Dr. Hasan.pdf
Env and Water Supply Engg._Dr. Hasan.pdf
MahmudHasan747870
Ìý
G8 mini project for alcohol detection and engine lock system with GPS tracki...
G8 mini project for  alcohol detection and engine lock system with GPS tracki...G8 mini project for  alcohol detection and engine lock system with GPS tracki...
G8 mini project for alcohol detection and engine lock system with GPS tracki...
sahillanjewar294
Ìý
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
ssuserd9338b
Ìý
How to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using ArduinoHow to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using Arduino
CircuitDigest
Ìý
Water Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control Monthly - March 2025.pdfWater Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control Monthly - March 2025.pdf
Water Industry Process Automation & Control
Ìý
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
NgocThang9
Ìý
Frankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkundeFrankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkunde
Lisa Emerson
Ìý
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
Ìý
Soil Properties and Methods of Determination
Soil Properties and  Methods of DeterminationSoil Properties and  Methods of Determination
Soil Properties and Methods of Determination
Rajani Vyawahare
Ìý
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
Ìý
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
Ìý
Power Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.pptPower Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.ppt
Aniket_1415
Ìý
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7
Ìý
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptxRAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
RAMSES- EDITORIAL SAMPLE FOR DSSPC C.pptx
JenTeruel1
Ìý
Multi objective genetic approach with Ranking
Multi objective genetic approach with RankingMulti objective genetic approach with Ranking
Multi objective genetic approach with Ranking
namisha18
Ìý
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
Structural QA/QC Inspection in KRP 401600 | Copper Processing Plant-3 (MOF-3)...
slayshadow705
Ìý
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
Ìý
only history of java.pptx real bihind the name java
only history of java.pptx real bihind the name javaonly history of java.pptx real bihind the name java
only history of java.pptx real bihind the name java
mushtaqsaliq9
Ìý
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Ìý
Env and Water Supply Engg._Dr. Hasan.pdf
Env and Water Supply Engg._Dr. Hasan.pdfEnv and Water Supply Engg._Dr. Hasan.pdf
Env and Water Supply Engg._Dr. Hasan.pdf
MahmudHasan747870
Ìý
G8 mini project for alcohol detection and engine lock system with GPS tracki...
G8 mini project for  alcohol detection and engine lock system with GPS tracki...G8 mini project for  alcohol detection and engine lock system with GPS tracki...
G8 mini project for alcohol detection and engine lock system with GPS tracki...
sahillanjewar294
Ìý
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
IPC-9716_2024 Requirements for Automated Optical Inspection (AOI) Process Con...
ssuserd9338b
Ìý
How to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using ArduinoHow to Make an RFID Door Lock System using Arduino
How to Make an RFID Door Lock System using Arduino
CircuitDigest
Ìý
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
NgocThang9
Ìý
Frankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkundeFrankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkunde
Lisa Emerson
Ìý
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
Ìý
Soil Properties and Methods of Determination
Soil Properties and  Methods of DeterminationSoil Properties and  Methods of Determination
Soil Properties and Methods of Determination
Rajani Vyawahare
Ìý
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
Ìý
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
Ìý
Power Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.pptPower Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.ppt
Aniket_1415
Ìý

Can We Automatically Generate Class Comments in Pharo?

  • 1. Can We Automatically Generate Class Comments in Pharo? Pooja Rani, Alexandre Bergel, Lino Hess, Timo Kehrer, Oscar Nierstrasz University of Bern, Switzerland Ìý International Workshop on Smalltalk Technologies, Novi Sad, Serbia, 2022
  • 2. 2
  • 3. 3 High-quality code comments assist developers
  • 4. 4 Developers find writing comments a boring and effort-intensive task
  • 5. 5 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  • 6. 6 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  • 7. 7 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  • 8. 8 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  • 9. 9 - Rani et al., Empirical Software Engineering, 2021 Developers follow template inspired information types more often To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  • 10. 10 Color scale according to number of comments falling into a category 0 25 52 0 26 52 1 (52) 2 (52) 3 (52) 4 (52) 5 (52) 6 (52) 7 (52) O t h e r L i c e n s e D e p e n d e n c i e s C o n t r a c t s O b s e r v a t i o n s R e c o m m e n d a t i o n s E x t e n s i o s L i n k s D i s c o u r s e W a r n i n g s C o d i n g G u i d e l i n e s N a m i n g C o n v e n t i o n s T o d o c o m m e n t s C l a s s R e f e r e n c e s S u b c l a s s e s E x p l a n a t i o n R e f e r e n c e O t h e r R e s o u r c e s I m p l e m e n t a t i o n P o i n t s E x a m p l e s K e y M e s s a g e s I n s t a n c e V a r i a b l e s C o l l a b a r t o r s R e s p o n s i b i l i t y I n t e n t Categories Pharo versions (total classes) Developers follow template inspired information types more often - Rani et al., Empirical Software Engineering, 2021
  • 11. 11 Can we automatically generate these information types? Color scale according to number of comments falling into a category 0 25 52 0 26 52 1 (52) 2 (52) 3 (52) 4 (52) 5 (52) 6 (52) 7 (52) O t h e r L i c e n s e D e p e n d e n c i e s C o n t r a c t s O b s e r v a t i o n s R e c o m m e n d a t i o n s E x t e n s i o s L i n k s D i s c o u r s e W a r n i n g s C o d i n g G u i d e l i n e s N a m i n g C o n v e n t i o n s T o d o c o m m e n t s C l a s s R e f e r e n c e s S u b c l a s s e s E x p l a n a t i o n R e f e r e n c e O t h e r R e s o u r c e s I m p l e m e n t a t i o n P o i n t s E x a m p l e s K e y M e s s a g e s I n s t a n c e V a r i a b l e s C o l l a b a r t o r s R e s p o n s i b i l i t y I n t e n t Categories Pharo versions (total classes)
  • 12. 12 Objects are responsible members of an object community Rebecca Wirfs-Brock Object role stereotypes in 1992 in a Smalltalk Report article
  • 13. 13 Objects are responsible members of an object community Rebecca Wirfs-Brock Object role stereotypes in 1992 in a Smalltalk Report article
  • 14. 14 Controller Coordinator Structure Interface Information holder Objects are responsible members of an object community Rebecca Wirfs-Brock Object role stereotypes in 1992 in a Smalltalk Report article
  • 15. 15 Controller Coordinator Structure Interface Information holder Objects are responsible members of an object community Object role stereotypes in 1992 in a Smalltalk Report article Stereotype-based approach
  • 20. 20 Methodology Dataset Can We Automatically Generate Class Comments in Pharo? Previous works
  • 21. 21 Methodology Identify class stereotype Identify method stereotypes Pharo 8 Extract method information Extract class information Fill template 1 2 3 4 5
  • 22. 22 • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1
  • 23. 23 4% 4% 4% 5% 10% 16% 28% 33% Set Get Controller Creational Mutator Degenerate Collaborator Accessor Distribution of Stereotypes • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1
  • 24. 24 • Entity • Minimal Entity • Data Provider • Commander • Boundary • Factory • Empty • Small • Controller • Pure Controller • Large • Lazy • Degenerate • Data Class Stereotypes 2 4% 4% 4% 5% 10% 16% 28% 33% Set Get Controller Creational Mutator Degenerate Collaborator Accessor • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1 Distribution of Stereotypes
  • 25. 25 0% 1% 2% 2% 2% 2% 2% 3% 5% 6% 7% 9% 23% 42% PureController Lazy Controller Data Entity Factory MinimalEntity Empty Commander Small Large Degenerate Boundary DataProvider 4% 4% 4% 5% 10% 16% 28% 33% Set Get Controller Creational Mutator Degenerate Collaborator Accessor • Entity • Minimal Entity • Data Provider • Commander • Boundary • Factory • Empty • Small • Controller • Pure Controller • Large • Lazy • Degenerate • Data Class Stereotypes 2 • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1 Distribution of Stereotypes
  • 26. 26 • Entity • Minimal Entity • Data Provider • Commander • Boundary • Factory • Empty • Small • Controller • Pure Controller • Large • Lazy • Degenerate • Data Class Stereotypes 2 • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1
  • 28. 28 • External used methods • Internally used methods Method Information 3 • Class name • Class stereotype description • Classes used by the class • Dependent classes • Relevant keywords Class Information 4 Small Controller Pure Controller Large Lazy Degenerate Data otypes reational ollaborator egnerate ontroller eotypes
  • 29. 29 • External used methods • Internally used methods Method Information 3 • Class name • Class stereotype description • Classes used by the class • Dependent classes • Relevant keywords Class Information 4 Small Controller Pure Controller Large Lazy Degenerate Data otypes reational ollaborator egnerate ontroller eotypes
  • 30. 30 • External used methods • Internally used methods Method Information 3 • Class name • Class stereotype description • Classes used by the class • Dependent classes • Relevant keywords Class Information 4 Small Controller Pure Controller Large Lazy Degenerate Data otypes reational ollaborator egnerate ontroller eotypes
  • 31. 31 24 class comments (auto generated) 3 developers: each comment evaluated by three 42 evaluations: 7 developers completed it 3 metrics: Adequacy, Conciseness, Comprehensibility Evaluation
  • 32. 32 Evaluation Adequacy: 44% participants said the comment is missing some important information
  • 33. 33 Conciseness- 54% participants said the comment contains a lot of unnecessary information Evaluation Adequacy: 44% participants said the comment is missing some important information