Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Can We Automatically Generate Class Comments in Pharo?

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 36 Anuncio

Más Contenido Relacionado

Similares a Can We Automatically Generate Class Comments in Pharo? (20)

Más de ESUG (20)

Anuncio

Más reciente (20)

Can We Automatically Generate Class Comments in Pharo?

  1. 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. 2
  3. 3. 3 High-quality code comments assist developers
  4. 4. 4 Developers find writing comments a boring and effort-intensive task
  5. 5. 5 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  6. 6. 6 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  7. 7. 7 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  8. 8. 8 To support developers in writing comments, communities suggest coding guidelines Apache Oracle Google Pharo PEP8/257
  9. 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. 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. 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. 12 Objects are responsible members of an object community Rebecca Wirfs-Brock Object role stereotypes in 1992 in a Smalltalk Report article
  13. 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. 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. 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. 16. 16 Previous works
  17. 17. 17 Previous works
  18. 18. 18 Previous works
  19. 19. 19 Previous works
  20. 20. 20 Methodology Dataset Can We Automatically Generate Class Comments in Pharo? Previous works
  21. 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. 22 • Accessor • Getter • Mutator • Setter • Creational • Collaborator • Degnerate • Controller Method Stereotypes 1
  23. 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. 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. 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. 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. 27. 27 Small Controller Pure Controller Large Lazy Degenerate Data otypes reational ollaborator egnerate ontroller eotypes
  28. 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. 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. 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. 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. 32 Evaluation Adequacy: 44% participants said the comment is missing some important information
  33. 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

×