SlideShare a Scribd company logo
TRIS: a Fast and Accurate IdentifiersTRIS: a Fast and Accurate Identifiers
Splitting and ExpansionSplitting and ExpansionSplitting and ExpansionSplitting and Expansion
AlgorithmAlgorithm
WCRE 2012, Kingston, CanadaWCRE 2012, Kingston, Canada
Latifa Guerrouj, Philippe Galinier, Yann-Gaël Guéhéneuc,
Giuliano Antoniol, and Massimiliano Di Penta
Content
Research Context
Current Practices
TRIS in Essence
2/25
WCRE’12, Kingston
TRIS in Essence
Case Study
Threats to Validity
Conclusion
Research Context
Researchers agree that the identifier semantics areResearchers agree that the identifier semantics are
important:important:
Help program comprehension: [CT99, DP05, LFB06]…;
Improve software quality: [MPF08, LMFB06, JH06]…;
3/25
WCRE’12, Kingston
Suggest clues: [TGM96, LMFB07]...
Composed identifiers:Composed identifiers:
Camel Case: MyLocalAccount, User_Address
Contraction based: pntr ctr, usrAdrss , imagEdge
Good and possibly known to the developers:
hmmm, ixoth , pqrstuvwxyz
Current Practices
Camel CaseCamel Case--based approaches [based approaches [LFB06LFB06]]
Samurai bySamurai by EnslenEnslen [ELK09]:[ELK09]:
Mines term frequencies in large source code bases and relies on two
assumptions:
4/25
WCRE’12, Kingston
1) A substring composing an identifier is also likely to be used in
other parts of the program or in other programs.
2) Given two possible splits of a given identifier, the split that
most likely represents the developer’s intent partitions the
identifier into terms occurring more often in the program.
Abbreviations not treated, no quantification of howAbbreviations not treated, no quantification of how
close the match is to the unknown string.close the match is to the unknown string.
Current Practices
TIDIER [TIDIER [GMAGMA11]:11]:
Inspired by speech recognition techniques and uses Dynamic
Time Warping to match terms to domain concepts.
Exploits context in the form of specialized dictionaries and
mimics the process of transforming words via contraction
rules.
5/25
WCRE’12, Kingston
GenTestGenTest/Normalize [LBM10, LB11]:/Normalize [LBM10, LB11]:
GenTest generates all possible splittings and evaluates a
scoring function against each proposed splitting.
Normalize uses a machine translation technique, the
maximum coherence model.
TIDIER,TIDIER, GenTestGenTest and Normalize are demandingand Normalize are demanding
in terms of computation time.in terms of computation time.
TRIS in Essence
TRIS assumes that developers compose identifiers:TRIS assumes that developers compose identifiers:
Using terms and words reflecting domain concepts developer’s
experience, knowledge.
TRIS uses set of transformation rules:TRIS uses set of transformation rules:
6/25
WCRE’12, Kingston
Drop vowels, drop prefix, drop suffix, etc.
TRISTRIS treats the problem as an optimization problemtreats the problem as an optimization problem
where the cost function is:where the cost function is:
C(wOrig w) = α*Freq(wOrig) + C(type(wOrig w))
Freq(wOrig): frequency of wOrig in the source code
C(type(wOrig w)): cost of the transformation type
TRIS in Essence
TRIS applies a twoTRIS applies a two--phase strategy:phase strategy:
1) Building dictionary transformation1) Building dictionary transformation
Computation of the frequency of dictionary words
7/25
WCRE’12, Kingston
Construction of the set of transformations
Construction of the arborescence
2) Identifier processing algorithm2) Identifier processing algorithm
Construction of the auxiliary graph of the identifier
Search for a shortest path in the auxiliary graph
TRIS in Essence
TRIS phasesTRIS phases –– Example:Example:
8/25
WCRE’12, Kingston
Dictionary Transformations Building Information for the Identifier
callableint
TRIS in Essence
9/25
WCRE’12, Kingston
Arborescence of Transformations for the Dictionary D
Auxiliary Graph for the Identifier callableint
Case Study - Research Question
Quality focus:
Accuracy of TRIS with respect to oracles, and compared with state-
of-the-art approaches: 1) Camel Case Splitter, 2) Samurai, 3)
TIDIER, and 4) GenTest.
10/25
WCRE’12, Kingston
TIDIER, and 4) GenTest.
Research Question:
What is the accuracy of the TRIS identifier splitting and expansion
approach compared with alternative state-of-the art approaches?
Case Study – Analyzed Systems
JHotDraw – Java
16 KLOC
155 files
2,348 identifiers (longer than 2 chars)
957 manually segmented identifiers
Lynx – C
174 KLOC
11/25
WCRE’12, Kingston
174 KLOC
247 files
12,194 identifiers (longer than 2 chars)
3,085 manually segmented identifiers
Lawrie et al. Data Set
186 programs
26 MLOC of C
15 MLOC of C++
7 MLOC of Java
489 C/C++ sampled from 430 GNU projects
Case Study - Results
12/25
WCRE’12, Kingston
Precision, recall and F-measure of TRIS, Camel Case, Samurai,
and TIDIER on JHotDraw
Case Study - Results
13/25
WCRE’12, Kingston
Precision, recall and F-measure of TRIS, Camel Case, Samurai,
and TIDIER on Lynx
Case Study - Results
Comparison among approaches: Results of Wilcoxon paired test
and Cliff’s Delta effect size on JHotDraw
Approach 1 Approach 2 Adj p-value Cliff's delta
TRIS Camel Case 0.431 0.041
TRIS Samurai 0.894 0.001
TRIS TIDIER 0.024 0.043
14/25
WCRE’12, Kingston
Comparison among approaches: Results of Wilcoxon paired test
and Cliff’s Delta effect size on Lynx
Approach 1 Approach 2 Adj p-value Cliff's delta
TRIS Camel Case <0.001 0.743
TRIS Samurai <0.001 0.684
TRIS TIDIER <0.001 0.204
Cliff’s delta Interpretation:
- small for 0.148 <= d <0.33
- medium for 0.33 <= d < 0.474
- large for d >= 0.474
Case Study - Results
Metric Approach 1Q Median Mean 3Q σ
Precision TIDIER 0.4000 0.6667 0.6368 1.0000 0.3681
TRIS 1.0000 1.0000 0.8933 1.0000 0.2471
Recall TIDIER 0.5000 0.6667 0.6496 1.0000 0.3654
TRIS 1.0000 1.0000 0.8720 1.0000 0.2606
15/25
WCRE’12, Kingston
Precision, recall and F-measure of TRIS and TIDIER on the
489 C Sampled Identifiers
TRIS 1.0000 1.0000 0.8720 1.0000 0.2606
F-measure TIDIER 0.4000 0.6667 0.6409 1.0000 0.3650
TRIS 1.0000 1.0000 0.8790 1.0000 0.2524
Case Study - Results
Metric Approach 1Q Median Mean 3Q σ
Precision TRIS 1.0000 1.0000 0.9763 1.0000 0.1184
Recall TRIS 1.0000 1.0000 0.9439 1.0000 0.1565
F-measure TRIS 1.0000 1.0000 0.9559 1.0000 0.1358
Precision, recall and F-measure of TRIS and TIDIER on the
16/25
WCRE’12, Kingston
Approach Identifier Splitting Correctness
Samurai 70%
GenTest 82%
TRIS 86%
Correctness of the splitting provided using the data set from
LAWRIE et al
data set from LAWRIE et al
Conclusion
TRIS maps the identifier splitting/expansion problem in a graph
optimization problem to find the optimal path in an identifier
acyclic weighted graph.
TRIS was applied on Java, C, and C++ samples and compared to
Camel Case, Samurai, TIDIER, and GenTest.
17/25
WCRE’12, Kingston
Camel Case, Samurai, TIDIER, and GenTest.
Results show that TRIS outperforms other approaches with
medium to large effect size.
TRIS is also efficient in terms of computation time: quadratic
complexity in the length of the identifier.
Finally… Questions
18/25
WCRE’12, Kingston
Thank you for your attention
References
[LB11 ] D. Lawrie and D. Binkley, “Expanding identifiers to normalize source
code vocabulary,” International Conference on Software Maintenance , 2011, pp.
113–122.
[LBM10] D. Lawrie, D. Binkley, and C. Morrell, “Normalizing source code
vocabulary,” Working Conference on Reverse Engineering, 2010, pp. 112–122.
[GMA11] L. Guerrouj, D. P. Massimiliano, A. Giuliano, and Y.-G. Guéhéneuc,
“Tidier: An identifier splitting approach using speech recognition techniques,”
19/25
WCRE’12, Kingston
“Tidier: An identifier splitting approach using speech recognition techniques,”
Journal of Software Maintenance and Evolution: Research and Practice, 2011.
[MGD10] N. Madani, L. Guerrouj, M. Di Penta, Y. Guéhéneuc, and G. Antoniol.
“Recognizing words from source code identifiers using speech recognition
techniques”. 14th European Conference on Software Maintenance and
Reengineering, March 2010.
[ELK09] E. Enslen, E. Hill, L. Pollock, and K. Vijay-Shanker, “Mining source
code to automatically split identifiers for software analysis”. Mining Software
Repositories, International Workshop on, vol. 0, pp. 71-80, 2009.
References
[MPF08] A. Marcus, D. Poshyvanyk, and R. Ferenc. “Using the conceptual
cohesion of classes for fault prediction in object-oriented systems”. IEEE
Transactions on Software Engineering, 34(2):287-300, 2008.
LMFB07] Dawn Lawrie, Christopher Morrell, Henry Feild, and David Binkley.
“Effective identifier names for comprehension and memory”. Innovations in
Systems and Software Engineering, 3(4):303-318, 2007.
[LFB06] D. Lawrie, H. Feild, and D. Binkley. “Syntactic identifier conciseness
20/25
WCRE’12, Kingston
[LFB06] D. Lawrie, H. Feild, and D. Binkley. “Syntactic identifier conciseness
and consistency”. 6th International Workshop on Source Code Analysis and
Manipulation, pages139-148, Sept 27-29, 2006.
[LMFB06] D. Lawrie, C. Morrell, H. Feild, and D. Binkley. “What’s in a name? a
study of identifiers”. 14th International Conference on Program
Comprehension, pages 3-12, Athens, Greece, 2006.
[JH06] Z. Ming Jiang and Ahmed E. Hassan. “Examining the evolution of code
comments in postgresql”. 2006 International Workshop on Mining Software
Repositories, pages 179-180, 2006.
References
[DP05] Florian Deissenbock and Markus Pizka. “Concise and consistent
naming”. Proceedings of the International Workshop on Program
Comprehension, May 2005.
[Ian00] Ian Sommerville. Software Engineering. Addison-Wesley, sixth edition,
2000.
21/25
WCRE’12, Kingston
[TGM96] Armstrong Takang, Penny A. Grubb, and Robert D. Macredie. “The
effects of comments and identifier names on program comprehensibility: an
experiential study”. Journal of Program Languages, 4(3):143–167, 1996.
[HNey84] H. Ney, “The use of a one-stage dynamic programming algorithm for
connected word recognition”. Acoustics, Speech and Signal Processing, IEEE
Transactions on, vol. 32, no. 2, pp. 263-271, Apr 1984.

More Related Content

Similar to Wcre12b.ppt

The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection SystemThe Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
IOSRjournaljce
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
Benoit Combemale
 
Data Streaming (in a Nutshell) ... and Spark's window operations
Data Streaming (in a Nutshell) ... and Spark's window operationsData Streaming (in a Nutshell) ... and Spark's window operations
Data Streaming (in a Nutshell) ... and Spark's window operations
Vincenzo Gulisano
 
Searchable symmetric encryption security definitions
Searchable symmetric encryption security definitionsSearchable symmetric encryption security definitions
Searchable symmetric encryption security definitions
Conference Papers
 
deep_Visualization in Data mining.ppt
deep_Visualization in Data mining.pptdeep_Visualization in Data mining.ppt
deep_Visualization in Data mining.ppt
PerumalPitchandi
 
A Modified Technique For Performing Data Encryption & Data Decryption
A Modified Technique For Performing Data Encryption & Data DecryptionA Modified Technique For Performing Data Encryption & Data Decryption
A Modified Technique For Performing Data Encryption & Data Decryption
IJERA Editor
 
Approximating Attack Surfaces with Stack Traces [ICSE 15]
Approximating Attack Surfaces with Stack Traces [ICSE 15]Approximating Attack Surfaces with Stack Traces [ICSE 15]
Approximating Attack Surfaces with Stack Traces [ICSE 15]
Chris Theisen
 
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiffAnalyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
Martin Pinzger
 
Icpc11b.ppt
Icpc11b.pptIcpc11b.ppt
Randomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithmsRandomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithms
ijcisjournal
 
Intrusion Detection System for Classification of Attacks with Cross Validation
Intrusion Detection System for Classification of Attacks with Cross ValidationIntrusion Detection System for Classification of Attacks with Cross Validation
Intrusion Detection System for Classification of Attacks with Cross Validation
inventionjournals
 
Quantum computing
Quantum computingQuantum computing
Quantum computing
Miguel Antonio Rey
 
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
ijcisjournal
 
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
ijcisjournal
 
Lead confluent HQ Dec 2019
Lead   confluent HQ Dec 2019Lead   confluent HQ Dec 2019
Lead confluent HQ Dec 2019
Sabri Skhiri
 
Cytoscape ci chapter 1
Cytoscape ci chapter 1Cytoscape ci chapter 1
Cytoscape ci chapter 1
bdemchak
 
International Journal of Computer Science, Engineering and Applications (IJCSEA)
International Journal of Computer Science, Engineering and Applications (IJCSEA)International Journal of Computer Science, Engineering and Applications (IJCSEA)
International Journal of Computer Science, Engineering and Applications (IJCSEA)
IJCSEA Journal
 
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
IJCSEA Journal
 
Traffic sign recognition and detection using SVM and CNN
Traffic sign recognition and detection using SVM and CNNTraffic sign recognition and detection using SVM and CNN
Traffic sign recognition and detection using SVM and CNN
IRJET Journal
 
ICMCSI 2023 PPT 1074.pptx
ICMCSI 2023 PPT 1074.pptxICMCSI 2023 PPT 1074.pptx
ICMCSI 2023 PPT 1074.pptx
ajagbesundayadeola
 

Similar to Wcre12b.ppt (20)

The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection SystemThe Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
The Use of K-NN and Bees Algorithm for Big Data Intrusion Detection System
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
 
Data Streaming (in a Nutshell) ... and Spark's window operations
Data Streaming (in a Nutshell) ... and Spark's window operationsData Streaming (in a Nutshell) ... and Spark's window operations
Data Streaming (in a Nutshell) ... and Spark's window operations
 
Searchable symmetric encryption security definitions
Searchable symmetric encryption security definitionsSearchable symmetric encryption security definitions
Searchable symmetric encryption security definitions
 
deep_Visualization in Data mining.ppt
deep_Visualization in Data mining.pptdeep_Visualization in Data mining.ppt
deep_Visualization in Data mining.ppt
 
A Modified Technique For Performing Data Encryption & Data Decryption
A Modified Technique For Performing Data Encryption & Data DecryptionA Modified Technique For Performing Data Encryption & Data Decryption
A Modified Technique For Performing Data Encryption & Data Decryption
 
Approximating Attack Surfaces with Stack Traces [ICSE 15]
Approximating Attack Surfaces with Stack Traces [ICSE 15]Approximating Attack Surfaces with Stack Traces [ICSE 15]
Approximating Attack Surfaces with Stack Traces [ICSE 15]
 
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiffAnalyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
 
Icpc11b.ppt
Icpc11b.pptIcpc11b.ppt
Icpc11b.ppt
 
Randomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithmsRandomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithms
 
Intrusion Detection System for Classification of Attacks with Cross Validation
Intrusion Detection System for Classification of Attacks with Cross ValidationIntrusion Detection System for Classification of Attacks with Cross Validation
Intrusion Detection System for Classification of Attacks with Cross Validation
 
Quantum computing
Quantum computingQuantum computing
Quantum computing
 
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
 
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...Improved Caesar Cipher with Random Number Generation Technique and Multistage...
Improved Caesar Cipher with Random Number Generation Technique and Multistage...
 
Lead confluent HQ Dec 2019
Lead   confluent HQ Dec 2019Lead   confluent HQ Dec 2019
Lead confluent HQ Dec 2019
 
Cytoscape ci chapter 1
Cytoscape ci chapter 1Cytoscape ci chapter 1
Cytoscape ci chapter 1
 
International Journal of Computer Science, Engineering and Applications (IJCSEA)
International Journal of Computer Science, Engineering and Applications (IJCSEA)International Journal of Computer Science, Engineering and Applications (IJCSEA)
International Journal of Computer Science, Engineering and Applications (IJCSEA)
 
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
DESIGN OF SOFT VITERBI ALGORITHM DECODER ENHANCED WITH NON-TRANSMITTABLE CODE...
 
Traffic sign recognition and detection using SVM and CNN
Traffic sign recognition and detection using SVM and CNNTraffic sign recognition and detection using SVM and CNN
Traffic sign recognition and detection using SVM and CNN
 
ICMCSI 2023 PPT 1074.pptx
ICMCSI 2023 PPT 1074.pptxICMCSI 2023 PPT 1074.pptx
ICMCSI 2023 PPT 1074.pptx
 

More from Yann-Gaël Guéhéneuc

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
Yann-Gaël Guéhéneuc
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
Yann-Gaël Guéhéneuc
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
Yann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Yann-Gaël Guéhéneuc
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
Yann-Gaël Guéhéneuc
 
ICSOC'21
ICSOC'21ICSOC'21
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
Yann-Gaël Guéhéneuc
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
Yann-Gaël Guéhéneuc
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
Yann-Gaël Guéhéneuc
 
Msr20.ppt
Msr20.pptMsr20.ppt
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt

More from Yann-Gaël Guéhéneuc (20)

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 

Recently uploaded

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 

Recently uploaded (20)

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 

Wcre12b.ppt

  • 1. TRIS: a Fast and Accurate IdentifiersTRIS: a Fast and Accurate Identifiers Splitting and ExpansionSplitting and ExpansionSplitting and ExpansionSplitting and Expansion AlgorithmAlgorithm WCRE 2012, Kingston, CanadaWCRE 2012, Kingston, Canada Latifa Guerrouj, Philippe Galinier, Yann-Gaël Guéhéneuc, Giuliano Antoniol, and Massimiliano Di Penta
  • 2. Content Research Context Current Practices TRIS in Essence 2/25 WCRE’12, Kingston TRIS in Essence Case Study Threats to Validity Conclusion
  • 3. Research Context Researchers agree that the identifier semantics areResearchers agree that the identifier semantics are important:important: Help program comprehension: [CT99, DP05, LFB06]…; Improve software quality: [MPF08, LMFB06, JH06]…; 3/25 WCRE’12, Kingston Suggest clues: [TGM96, LMFB07]... Composed identifiers:Composed identifiers: Camel Case: MyLocalAccount, User_Address Contraction based: pntr ctr, usrAdrss , imagEdge Good and possibly known to the developers: hmmm, ixoth , pqrstuvwxyz
  • 4. Current Practices Camel CaseCamel Case--based approaches [based approaches [LFB06LFB06]] Samurai bySamurai by EnslenEnslen [ELK09]:[ELK09]: Mines term frequencies in large source code bases and relies on two assumptions: 4/25 WCRE’12, Kingston 1) A substring composing an identifier is also likely to be used in other parts of the program or in other programs. 2) Given two possible splits of a given identifier, the split that most likely represents the developer’s intent partitions the identifier into terms occurring more often in the program. Abbreviations not treated, no quantification of howAbbreviations not treated, no quantification of how close the match is to the unknown string.close the match is to the unknown string.
  • 5. Current Practices TIDIER [TIDIER [GMAGMA11]:11]: Inspired by speech recognition techniques and uses Dynamic Time Warping to match terms to domain concepts. Exploits context in the form of specialized dictionaries and mimics the process of transforming words via contraction rules. 5/25 WCRE’12, Kingston GenTestGenTest/Normalize [LBM10, LB11]:/Normalize [LBM10, LB11]: GenTest generates all possible splittings and evaluates a scoring function against each proposed splitting. Normalize uses a machine translation technique, the maximum coherence model. TIDIER,TIDIER, GenTestGenTest and Normalize are demandingand Normalize are demanding in terms of computation time.in terms of computation time.
  • 6. TRIS in Essence TRIS assumes that developers compose identifiers:TRIS assumes that developers compose identifiers: Using terms and words reflecting domain concepts developer’s experience, knowledge. TRIS uses set of transformation rules:TRIS uses set of transformation rules: 6/25 WCRE’12, Kingston Drop vowels, drop prefix, drop suffix, etc. TRISTRIS treats the problem as an optimization problemtreats the problem as an optimization problem where the cost function is:where the cost function is: C(wOrig w) = α*Freq(wOrig) + C(type(wOrig w)) Freq(wOrig): frequency of wOrig in the source code C(type(wOrig w)): cost of the transformation type
  • 7. TRIS in Essence TRIS applies a twoTRIS applies a two--phase strategy:phase strategy: 1) Building dictionary transformation1) Building dictionary transformation Computation of the frequency of dictionary words 7/25 WCRE’12, Kingston Construction of the set of transformations Construction of the arborescence 2) Identifier processing algorithm2) Identifier processing algorithm Construction of the auxiliary graph of the identifier Search for a shortest path in the auxiliary graph
  • 8. TRIS in Essence TRIS phasesTRIS phases –– Example:Example: 8/25 WCRE’12, Kingston Dictionary Transformations Building Information for the Identifier callableint
  • 9. TRIS in Essence 9/25 WCRE’12, Kingston Arborescence of Transformations for the Dictionary D Auxiliary Graph for the Identifier callableint
  • 10. Case Study - Research Question Quality focus: Accuracy of TRIS with respect to oracles, and compared with state- of-the-art approaches: 1) Camel Case Splitter, 2) Samurai, 3) TIDIER, and 4) GenTest. 10/25 WCRE’12, Kingston TIDIER, and 4) GenTest. Research Question: What is the accuracy of the TRIS identifier splitting and expansion approach compared with alternative state-of-the art approaches?
  • 11. Case Study – Analyzed Systems JHotDraw – Java 16 KLOC 155 files 2,348 identifiers (longer than 2 chars) 957 manually segmented identifiers Lynx – C 174 KLOC 11/25 WCRE’12, Kingston 174 KLOC 247 files 12,194 identifiers (longer than 2 chars) 3,085 manually segmented identifiers Lawrie et al. Data Set 186 programs 26 MLOC of C 15 MLOC of C++ 7 MLOC of Java 489 C/C++ sampled from 430 GNU projects
  • 12. Case Study - Results 12/25 WCRE’12, Kingston Precision, recall and F-measure of TRIS, Camel Case, Samurai, and TIDIER on JHotDraw
  • 13. Case Study - Results 13/25 WCRE’12, Kingston Precision, recall and F-measure of TRIS, Camel Case, Samurai, and TIDIER on Lynx
  • 14. Case Study - Results Comparison among approaches: Results of Wilcoxon paired test and Cliff’s Delta effect size on JHotDraw Approach 1 Approach 2 Adj p-value Cliff's delta TRIS Camel Case 0.431 0.041 TRIS Samurai 0.894 0.001 TRIS TIDIER 0.024 0.043 14/25 WCRE’12, Kingston Comparison among approaches: Results of Wilcoxon paired test and Cliff’s Delta effect size on Lynx Approach 1 Approach 2 Adj p-value Cliff's delta TRIS Camel Case <0.001 0.743 TRIS Samurai <0.001 0.684 TRIS TIDIER <0.001 0.204 Cliff’s delta Interpretation: - small for 0.148 <= d <0.33 - medium for 0.33 <= d < 0.474 - large for d >= 0.474
  • 15. Case Study - Results Metric Approach 1Q Median Mean 3Q σ Precision TIDIER 0.4000 0.6667 0.6368 1.0000 0.3681 TRIS 1.0000 1.0000 0.8933 1.0000 0.2471 Recall TIDIER 0.5000 0.6667 0.6496 1.0000 0.3654 TRIS 1.0000 1.0000 0.8720 1.0000 0.2606 15/25 WCRE’12, Kingston Precision, recall and F-measure of TRIS and TIDIER on the 489 C Sampled Identifiers TRIS 1.0000 1.0000 0.8720 1.0000 0.2606 F-measure TIDIER 0.4000 0.6667 0.6409 1.0000 0.3650 TRIS 1.0000 1.0000 0.8790 1.0000 0.2524
  • 16. Case Study - Results Metric Approach 1Q Median Mean 3Q σ Precision TRIS 1.0000 1.0000 0.9763 1.0000 0.1184 Recall TRIS 1.0000 1.0000 0.9439 1.0000 0.1565 F-measure TRIS 1.0000 1.0000 0.9559 1.0000 0.1358 Precision, recall and F-measure of TRIS and TIDIER on the 16/25 WCRE’12, Kingston Approach Identifier Splitting Correctness Samurai 70% GenTest 82% TRIS 86% Correctness of the splitting provided using the data set from LAWRIE et al data set from LAWRIE et al
  • 17. Conclusion TRIS maps the identifier splitting/expansion problem in a graph optimization problem to find the optimal path in an identifier acyclic weighted graph. TRIS was applied on Java, C, and C++ samples and compared to Camel Case, Samurai, TIDIER, and GenTest. 17/25 WCRE’12, Kingston Camel Case, Samurai, TIDIER, and GenTest. Results show that TRIS outperforms other approaches with medium to large effect size. TRIS is also efficient in terms of computation time: quadratic complexity in the length of the identifier.
  • 19. References [LB11 ] D. Lawrie and D. Binkley, “Expanding identifiers to normalize source code vocabulary,” International Conference on Software Maintenance , 2011, pp. 113–122. [LBM10] D. Lawrie, D. Binkley, and C. Morrell, “Normalizing source code vocabulary,” Working Conference on Reverse Engineering, 2010, pp. 112–122. [GMA11] L. Guerrouj, D. P. Massimiliano, A. Giuliano, and Y.-G. Guéhéneuc, “Tidier: An identifier splitting approach using speech recognition techniques,” 19/25 WCRE’12, Kingston “Tidier: An identifier splitting approach using speech recognition techniques,” Journal of Software Maintenance and Evolution: Research and Practice, 2011. [MGD10] N. Madani, L. Guerrouj, M. Di Penta, Y. Guéhéneuc, and G. Antoniol. “Recognizing words from source code identifiers using speech recognition techniques”. 14th European Conference on Software Maintenance and Reengineering, March 2010. [ELK09] E. Enslen, E. Hill, L. Pollock, and K. Vijay-Shanker, “Mining source code to automatically split identifiers for software analysis”. Mining Software Repositories, International Workshop on, vol. 0, pp. 71-80, 2009.
  • 20. References [MPF08] A. Marcus, D. Poshyvanyk, and R. Ferenc. “Using the conceptual cohesion of classes for fault prediction in object-oriented systems”. IEEE Transactions on Software Engineering, 34(2):287-300, 2008. LMFB07] Dawn Lawrie, Christopher Morrell, Henry Feild, and David Binkley. “Effective identifier names for comprehension and memory”. Innovations in Systems and Software Engineering, 3(4):303-318, 2007. [LFB06] D. Lawrie, H. Feild, and D. Binkley. “Syntactic identifier conciseness 20/25 WCRE’12, Kingston [LFB06] D. Lawrie, H. Feild, and D. Binkley. “Syntactic identifier conciseness and consistency”. 6th International Workshop on Source Code Analysis and Manipulation, pages139-148, Sept 27-29, 2006. [LMFB06] D. Lawrie, C. Morrell, H. Feild, and D. Binkley. “What’s in a name? a study of identifiers”. 14th International Conference on Program Comprehension, pages 3-12, Athens, Greece, 2006. [JH06] Z. Ming Jiang and Ahmed E. Hassan. “Examining the evolution of code comments in postgresql”. 2006 International Workshop on Mining Software Repositories, pages 179-180, 2006.
  • 21. References [DP05] Florian Deissenbock and Markus Pizka. “Concise and consistent naming”. Proceedings of the International Workshop on Program Comprehension, May 2005. [Ian00] Ian Sommerville. Software Engineering. Addison-Wesley, sixth edition, 2000. 21/25 WCRE’12, Kingston [TGM96] Armstrong Takang, Penny A. Grubb, and Robert D. Macredie. “The effects of comments and identifier names on program comprehensibility: an experiential study”. Journal of Program Languages, 4(3):143–167, 1996. [HNey84] H. Ney, “The use of a one-stage dynamic programming algorithm for connected word recognition”. Acoustics, Speech and Signal Processing, IEEE Transactions on, vol. 32, no. 2, pp. 263-271, Apr 1984.