Laleh M. Eshkevari defended her Ph.D dissertation on developing techniques for the automatic detection and classification of identifier renamings in software projects. Her dissertation outlined a taxonomy of renamings, described approaches for renaming detection based on line mapping, entity mapping and data flow analysis, and discussed methods for classifying renamings based on their form and semantic changes. Evaluation of the approaches on several open source projects showed high precision and recall for renaming detection and identified trends in how renamings are used in practice.
What java developers (don’t) know about api compatibilityJens Dietrich
The results of a survey aimed to find out what Java developers know about source, binary and behavioural API compatibility. The questions are based on the deployment puzzlers set of questions.
A Taxonomy for Program Metamodels in Program Reverse EngineeringHironori Washizaki
Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME) (CORE Rank A), October 2-10, Raleigh, North Carolina, USA. (to appear) (acceptance rate 29%=37/127) http://www.washi.cs.waseda.ac.jp/
What java developers (don’t) know about api compatibilityJens Dietrich
The results of a survey aimed to find out what Java developers know about source, binary and behavioural API compatibility. The questions are based on the deployment puzzlers set of questions.
A Taxonomy for Program Metamodels in Program Reverse EngineeringHironori Washizaki
Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME) (CORE Rank A), October 2-10, Raleigh, North Carolina, USA. (to appear) (acceptance rate 29%=37/127) http://www.washi.cs.waseda.ac.jp/
Class Diagram Extraction from Textual Requirements Using NLP Techniquesiosrjce
IOSR Journal of Computer Engineering (IOSR-JCE) is a double blind peer reviewed International Journal that provides rapid publication (within a month) of articles in all areas of computer engineering and its applications. The journal welcomes publications of high quality papers on theoretical developments and practical applications in computer technology. Original research papers, state-of-the-art reviews, and high quality technical notes are invited for publications.
Deep learning based code smell detection - Qualifying TalkSayed Mohsin Reza
Presented by; Sayed Mohsin Reza, Ph.D. Student, Computer Science, University of Texas
Abstract:
Code smells are structures in the source code that suggest the possibility of refactorings. Consequently, developers may identify refactoring opportunities by detecting code smells. However, manual identification of code smells is challenging and tedious. To this end, a number of approaches have been proposed to identify code smells automatically or semi-automatically. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics into predictions. However, it is challenging to manually select the best features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features of source code for code smell detection, and could automatically build the complex mapping between such features and predictions. A big challenge for deep learning based smell detection is that deep learning often requires a large number of labeled training data (to tune a large number of parameters within the employed deep neural network) whereas existing datasets for code smell detection are rather small. To this end, we propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. As an initial try, we apply the proposed approach to four common and well-known code smells, i.e., feature envy, long method, large class, and misplaced class. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art.
This presentation introduces the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Attention is given also to the “refactoring” as a technique for improving the quality of the existing code. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced.
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09666155510, 09849539085 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
Ph.D. Dissertation Presentation
B. Thomas Golisano College of Computing and Information Sciences
Rochester Institute of Technology
Date of presentation: June 28, 2022
Location: Virtual
Link to dissertation: https://scholarworks.rit.edu/theses/11219/
Class Diagram Extraction from Textual Requirements Using NLP Techniquesiosrjce
IOSR Journal of Computer Engineering (IOSR-JCE) is a double blind peer reviewed International Journal that provides rapid publication (within a month) of articles in all areas of computer engineering and its applications. The journal welcomes publications of high quality papers on theoretical developments and practical applications in computer technology. Original research papers, state-of-the-art reviews, and high quality technical notes are invited for publications.
Deep learning based code smell detection - Qualifying TalkSayed Mohsin Reza
Presented by; Sayed Mohsin Reza, Ph.D. Student, Computer Science, University of Texas
Abstract:
Code smells are structures in the source code that suggest the possibility of refactorings. Consequently, developers may identify refactoring opportunities by detecting code smells. However, manual identification of code smells is challenging and tedious. To this end, a number of approaches have been proposed to identify code smells automatically or semi-automatically. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics into predictions. However, it is challenging to manually select the best features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features of source code for code smell detection, and could automatically build the complex mapping between such features and predictions. A big challenge for deep learning based smell detection is that deep learning often requires a large number of labeled training data (to tune a large number of parameters within the employed deep neural network) whereas existing datasets for code smell detection are rather small. To this end, we propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. As an initial try, we apply the proposed approach to four common and well-known code smells, i.e., feature envy, long method, large class, and misplaced class. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art.
This presentation introduces the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Attention is given also to the “refactoring” as a technique for improving the quality of the existing code. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced.
To Get any Project for CSE, IT ECE, EEE Contact Me @ 09666155510, 09849539085 or mail us - ieeefinalsemprojects@gmail.com-Visit Our Website: www.finalyearprojects.org
Ph.D. Dissertation Presentation
B. Thomas Golisano College of Computing and Information Sciences
Rochester Institute of Technology
Date of presentation: June 28, 2022
Location: Virtual
Link to dissertation: https://scholarworks.rit.edu/theses/11219/
Presented at: 19th IEEE International Working Conference on Source Code Analysis and Manipulation
Date of Conference: 30 Sept.-1 Oct. 2019
Conference Location: Cleveland, OH, USA
DOI: https://doi.org/10.1109/SCAM.2019.00017
This is a tutorial that was presented at: The 20th International Conference on Software and Systems Reuse (ICSR'22)
Date of Conference: 15-17 June 2022
Conference Location: Virtual
Conference website: https://icsr2022v2.wp.imt.fr/
Presented at: The 6th International Workshop on Refactoring (IWoR 2022)
Date of Workshop: 14 October 2022
Conference Location: Oakland Center, Michigan, USA
Getting Unstuck: Working with Legacy Code and DataCory Foy
From this presentation for the IASA in 2007, Cory covers common challenges in dealing with Legacy Code and Data, and some tools and techniques for handling them.
Part 5 of an in-company training. Complete set of slides under:
Part 1: https://www.slideshare.net/VasilyKartashov/effective-php-part-1
Part 2: https://www.slideshare.net/VasilyKartashov/effective-php-part-2
Part 3: https://www.slideshare.net/VasilyKartashov/effective-php-part-3
Part 4: https://www.slideshare.net/VasilyKartashov/effective-php-part-4
Part 5: https://www.slideshare.net/VasilyKartashov/effective-php-part-5
Part 6: https://www.slideshare.net/VasilyKartashov/effective-php-part-6
More about the author: http://notes.kartashov.com/about/
Using Agile Processes on Documentum Projectsmufflerdog
Blue Fish Founder Michael Trafton builds a case against the software development methodologies we have been using since the 80s and proposes an alternative.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Using IESVE for Room Loads Analysis - Australia & New Zealand
Thesis+of+laleh+eshkevari.ppt
1. Laleh M. Eshkevari, Ph.D Dissertation Defense
Automatic Detection and
Classification of Renamings
Supervisors:
Dr. Antoniol
Dr. Guéhéneuc
Department of Computer and Software Engineering
Ecole Polytechnique de Montreal, Quebec, Canada
14 December 2015
2. ❖ Context and Motivation
❖ Thesis Statement
❖ Taxonomy of Renaming
❖ Detection
❖ Classification
❖ Conclusion and Future Works
2
Outline
{Java and PHP
3. Identifiers are added, deleted, or modified, i.e.,
renamed.
Why identifiers are renamed?
❖ Improve consistency
❖ Adjust naming convention
❖ Correct typos
3
Context and Motivation
4. ❖ Developer A:
“There’s a balance to be struck: - identifiers are communication, and as the code
is refactored it is critical that identifiers continue to correctly describe their
purpose - changing identifiers tends to break APIs, and sometimes they’re used
for unintended purposes, over-frequent change is not good.”
❖ Developer B:
“I encountered a problem when my colleague wrote Java code which uses
reflection. I avoided renaming some classes/methods which will be inspected by
the reflection, since doing so can introduce unpredictable bugs.”
4
Context and Motivation
5. g ->
rebuildTypesAffectedByMissingSecondaryTypes ->
sessState ->
e ->
verifyAXFR ->
jj_3R_70 ->
length ->
generalization
sessionState
t
verifyStream
jj_3R_69
rebuildTypesAffectedBySecondaryTypes
l
MicroContainerNotAdvisedAnnotationOverrideProxyAdvisorTestCase ->
MicrocontainerAdvisedAnnotationOverrideProxyAdvisorTestCase
5
Examples of Renaming
parameter, Exception ->
local var, MGeneralization ->
local var, SessionState
local var, int
method, private, boolean, final
method, public, byte
Throwable
Object
6. Invited: 739 developers
Open-source and industrial programs
Object-Oriented
Participated: 71
❖ How often do developers rename?
❖ When do they rename?
❖ Is renaming straightforward?
❖ Already postpone a renaming?
6
Developers Opinion on Renamings
7. 7
How often do developers rename?
Very frequently (almost every day)
Frequently (few times per week)
Occasionally (few times per month)
Rarely (up to once per month)
13% 25% 38% 50%
14%
46%
18%
21%
8. 8
When do the developers rename?
When changing the functionality
When adding new functionality
When performing refactoring
When understanding code
When fixing a bug
Apart from other development activities
23% 45% 68% 90%
17%
42%
51%
90%
65%
89%
9. 9
Is renaming straightforward?
In most cases yes
Requires time and effort
Sometimes no, sometimes
In most cases no
Identifier renaming is straightforward
10% 20% 30% 40%
8%
24%
32%
17%
25%
10. 10
Already postponed a renaming?
High impact on the system
Too risky (could introduce bugs)
Potential impact on other systems
High effort required
15% 30% 45% 60%
25%
52%
35%
25%
11. Goal: To understand when, why, and how developers
rename identifiers.
11
Thesis Statement
Detection and linguistic analysis of identifier renamings
provides valuable insight on how, why, when developers
rename identifiers.
Tool supports, programming language, and naming
convention are factors that impact renamings frequency.
12. ❖ We defined a Taxonomy of renaming based on grounded-theory
approach [Strauss, 1987; Glaser, 1992 ].
❖ We manually analyzed 500 renaming to identify dimensions of
renaming [Eshkevari et al, Arnaoudova et al].
12
Taxonomy of Renamings
Eshkevari et al. An exploratory study of identifier renamings. MSR 2011
Grammar
changes
Entity
kind
Form of
renamings
Semantic
changes
Arnaoudova et al. REPENT : Analyzing the Nature of Identifier Renamings. TSE 2014
13. 13
Taxonomy of Renamings
Entity
kind
package
class
method
constructor
field
parameters
local vars
Form of
renamings
Semantic
changes
Grammar
changes
simple
complex
formatting only
term reordering
preserve meaning
change meaning
narrow meaning
add meaning
broaden meaning
remove meaning
none
part of speech change
none
hypernym color
hyponym red
holonym tree
meronym trunk
14. 14
Taxonomy of Renamings
Form of
renamings
simple
complex
formatting only
term reordering
override -> overriding
JavaExtension -> JAVA_EXTENSION
setDelaySocketClose -> setSocketCloseDelay
IsAssignmentWithNoEffectMASK -> AssignmentHasNoEffect
15. 15
Taxonomy of Renamings
Semantic
changes
preserve meaning
change meaning
narrow meaning
add meaning
broaden meaning
remove meaning
none
synonym
synonym phrase
spelling error
expansion
abbreviation
isPotentialMatch -> isPossibleMatch
notVisibleReference -> hiddenReference
sourceField -> fiieldInfo
collab -> collaboration
operationDesc -> opDesc
opposite
opposite phrase
whole-part
whole-part phrase
unrelated
disableLookups -> enableLookups
isNotPrimitiveType -> isPrimitiveType
body -> node
Path -> FileAndDirectory
expressionModel -> scriptModel
specialization
specialization phrase
thrownExceptionSize -> boundExceptionLength
item -> toDoItemgeneralization
generalization phrase
getAccessRestriction -> getAccessRuleSet
eventName -> name
flags -> typeAndFlags
removedPackagePath -> packagePath
extension -> Extension
17. private int invParamsPtr =-1;
private int invalidParamReferencesPtr=-1;
Entity
kind
Form of
renamings
Semantic
changes
Grammer
changes
complex preserve meaning
add meaning
field plural to singular
invParamsPtr -> invalidParamReferencesPtr
17
Example
20. Detection
Line mapping
Entity mapping
Data flow analysis
20
Renaming Detection
❖ We build a symbol table considering entities scope, signature, and
line number
❖ Identify modifications and uses within and across file by resolving
imported files
21. Detection
Line mapping
Entity mapping
Data flow analysis
Score of mapping
21
Renaming Detection
❖ We use the Normalized Levenshtein edit Distance (NLD)
NLD=
LD(Si,Sj)
Length(Si) + Length(Sj)
Hungarian algorithm
maximize score
Statement Similarity
Threshold (SST)
similarity_score=1- NLD Declaration Similarity
Threshold (DST)
22. Detection
Line mapping
Entity mapping
Data flow analysis
Score of mapping
22
Renaming Detection
score=sum(Si,j)
i,j ∈ mapped statements
{
numMatched >= NST
numMatched < NST
score=0
score(El,Ek)=
O1 -> N1
O2 -> N2
O3 -> N4
score(STATE_INITIAL,STATE_PRE_INIT)=1+1+1=3
Number of
matched
Statement
Threshold
26. How accurate is the set of renamings detected by REPENT?
❖ Sample size, 95%, 5% = 1,723
❖ Two evaluators, voting, conflict resolved by third evaluator
26
Detection Accuracy
Precision =
| TPS | + | FPS |
| TPS |
= 88% Programs
Tomcat
Eclipse-JDT
ArgoUml
JBoss
dnsjava
Precision
80%
94%
97%
91%
78%
Low precision in detection of parameter:
dnsjava: 54%
Tomcat : 67%
Not enough parameters when calibrating
the thresholds
+-
27. How complete is the set of renamings detected by REPENT?
❖ Commit logs “renam”, remove false positives
27
Detection Accuracy
Recall =
| DCR |
| DCR ∩ DR|
= 92%
Programs
Tomcat
Eclipse-JDT
ArgoUml
JBoss
dnsjava
Recall
100%
63%
75%
96%
98%
Eclipse-JDT: Failed to identify Class
renamings due to missed file renamings.
ArgoUML: 3/4 documente renamings is
identified. The missed case was a combination
combination of renaming and refactoring
28. ❖ We identify 33,812 renamings in five open source
programs.
❖ We manually validated a sample size (95% +- 5%) of
1,723 renamings.
❖ The overall precision of detection is 88%.
❖ The overall recall of detection is 92%.
❖ The high precision and recall make our approach
suitable for identifying renamings.
28
Detection Summary
38. How accurate is the set of classified renamings?
❖ Sample size, 95%, 10% , for each level of dimension
❖ 330 , 1102, 355, for each dimension respectively.
❖ Two evaluators, voting, conflict was resolve
38
Classification Accuracy
Programs
Tomcat
Eclipse-JDT
ArgoUML
JBoss
dnsjava
Form of
renaming
96%
96%
100%
98%
100%
Semantic
changes
72%
82%
88%
79%
92%
Grammar
changes
61%
75%
88%
72%
100%
+
-
40. ❖ Java is a statically type and object-oriented language.
❖ We are interested to investigate the applicability of
our approach to a language different from Java.
❖ We choose PHP as it is a popular language, it is a
dynamically type language and it allows scripting,
procedural and object-oriented programming.
40
Applicability to other languages
42. 42
PHP Renamings Detection
Detection
Line mapping
Entity mapping
Data flow analysis
Score of mapping
Renaming detection
- Resolve the include
- We use same thresholds SST,NST, DST as calibrated for
Java programs
Fixed point algorithm:
- Eclipse PDT tool to expect AST
- Heuristic
- Symbolic execution
Eshkevari et al. Identifying and Locating Interference Issues in PHP Applications. ICPC 2014
- Resolve the include
- Resolve the type, method/function binding
- Perform inter/intra procedural, flow sensitive- context
insensitive analysis to extract the def-uses
46. 46
Results for Form of Renaming
Wordpress
90%
10%
Complex
Formatting only
Simple
Term reordering
Drupal
100%
phpBB
79%
14%
7%
Programs
Wordpress
Drupal
phpBB
Precision
100%
100%
100%
47. 47
Results Semantic changes
0
7.5
15
22.5
30
Wordpress phpBB Drupal
Preserve meaning
Change meaning
Add meaning
Remove meaning
Broaden meaning
Narrow meaning
None
_update_8000_node_get_types -> _update_7000_node_get_types
48. 48
Precision of Semantic Change
Semantic
change
Preserve meaning
Broaden meaning
None
Narrow meaning
Change meaning
Add meaning
Remove meaning
Wordpress Drupal phpBB
100%- -
60% 57%-
0% 100%-
100% 50%-
0% - -
100% - -
100% 100%-
WP_Customize_Upload_Control->WP_Customize_Media_Control
title->link_text ACL_NO->ACL_NEVER
module_name->module_basename
50. 50
Precision of Grammar Change
Semantic
change
Singular/Plural
None
Verb conj change
Other POS
Wordpress Drupal phpBB
-100% -
- --
100% 100%-
100% 100%100%
tags-> tag
{
NNS
{
NN
ACL_NO-> ACL_NEVER
{
NN
{
NN
{RB
{
RB
new_content -> new_src
JJ
{
JJ
{
{
NN
{
NN
column_type -> orig_column_type
{
NN
{
NN
{
NN
{
NN
{
VBG
51. Construct validity:
❖ File renamings: thresholds 60%, CVS verging system
❖ Precision: human errors, subjectiveness
❖ Recall: small number of documented renamings
Internal validity:
❖ Calibration of thresholds, different results with different thresholds
External validity:
❖ Five open-source Java programs, different domain and size
51
Limitations of Detection
52. Construct validity:
❖ Precision and recall of detection
❖ Precision: human errors, subjectiveness
Internal validity:
❖ Use of threshold for term mapping, abbreviation and
expansion
External validity:
❖ Generalization, Java and PHP, different trends
52
Limitations of Classification
54. Goal: To understand when, why, and how developers rename
identifiers.
❖ We know that renaming is quite a frequent activity during
program evolution.
❖ It is mostly done when functionality of entities are changed and
also during refactoring.
❖ Though sometimes there is an urge for renaming, it is avoided
due to its cost and efforts.
❖ Developers tends to add and remove terms to rename identifiers,
while keeping the part of speech intact.
54
Conclusion
55. ❖ Recommending a name for a new entity or an entity
being renamed.
❖ Extends the study to other programming languages.
❖ Support automatic renamings in PHP programs.
55
Future Works
58. g ->
rebuildTypesAffectedByMissingSecondaryTypes ->
sessState ->
e ->
verifyAXFR ->
jj_3R_70 ->
v ->
length ->
generalization
sessionState
t
verifyStream
jj_3R_69
rebuildTypesAffectedBySecondaryTypes
list
l
MicroContainerNotAdvisedAnnotationOverrideProxyAdvisorTestCase ->
MicrocontainerAdvisedAnnotationOverrideProxyAdvisorTestCase
58
Examples of Renaming
parameter, Exception ->
local var, MGeneralization ->
local var, SessionState
local var, Vector ->
local var, int
method, private, boolean, final
method, public, byte
method, protected, void
Throwable
Object
List
65. 65
Limitation of Static Resolution
Dynamic analysis
-Use TXL to instrument the include statements
- Installed wordpress 3.6 with all 10 plugins
- Five simple scenarios
- Logged the actual files at run time
66. Software lexicon:
❖ Identifiers
❖ Comments
❖ Literal
Importance of lexicon
❖ Program comprehension
❖ Traceability links
❖ Concept location
66
Context and Motivation
67. ❖ Methods and parameters renamings are unavoidable due to evolution, i.e.,
constant changes in requirements.
❖ Using APIs without planning for change can cause ripple effect on the
client lexicon.
❖It is important to choose the naming conventions for each specific project in
an early stage of the development process and following it consistently.
❖ It is worth taking the effort to identify the right order of terms constituting
an identifier to clarify its meaning and avoid possible misunderstandings.
❖ To avoid the need for a sequence of renamings towards spelling error
correction, it is worth taking the time to spellcheck the identifier name when
creating or modifying an entity.
67
Lesson Learned
68. ❖ It is worth investigating which one of the two, an abbreviation or
its English alternative, is more common and thus should be used
❖ Identifiers that contain negation tend to be renamed towards
positive names.
❖ The majority of semantic changes during renamings change,
narrow, broaden, add, or remove a meaning to the identifier, as
part of the evolution process and thus cannot be avoided.
❖It is worth the effort to assure consistency between, on the one
hand, the name of an entity, and, on the other hand, its
functionality, type, or other entities.
68
Lesson Learned