SlideShare a Scribd company logo
1 of 26
An Empirical Study of the Copy and
Paste Behavior during Development
Tarek M. Ahmed
1
Weiyi Shang Ahmed E. Hassan
Copy & Paste leads to clones
//Code fragment
Copy
2
//Code fragment
Paste
//Code fragment
Copy
//Code fragment
Paste
Copy & Paste leads to clones
3
Large number of code clones
Clone detection tools detect
C&P after it is performed
Source Code
Clone
Detection
4
Code Clones
There exists no large scale C&P
study on developers
5
Controlled ExperimentSmall number Experienced only
Larger scale study exists on
regular users
• Regular computer users
• Non-Software development tasks
A large scale C&P study is needed for software
development tasks
6
Eclipse Usage Data Collector
(UDC) enables a large scale
C&P study
20 Months
7
>1 Millions Users
How to detect C&P in Eclipse
UDC
User ID What Kind … Description
104526 Executed Command org.eclipse.ui.edit.copy
User performs Copy
8
How to detect C&P in Eclipse
UDC
User ID What Kind … Description
104526 Executed Command org.eclipse.ui.edit.copy
104526 Executed Command org.eclipse.ui.edit.paste
User performs Paste
9
Our study focuses on users
who frequently and actively use
Eclipse
Create
Development
Sessions
10
Find Active
Sessions
Find Frequent
Users
20 Months
11
4 Million C&P20,000 Users
Uncovering the C&P behavior
of IDE users
12
Average number of C&P per hour is
different from recent studies
13
2.73 16
Our finding
Previous
finding
#Commands > Average #Commands
+ 1 Standard deviation
#Commands > Average #Commands
+ 2 Standard deviation
Heavy
Editing
Sessions
V. Heavy
Editing
Sessions
11.39 13.18
Do IDE users follow the
same C&P patterns as
regular users?
How do IDE users copy
and paste code across
different file formats?
14
Do IDE users follow the
same C&P patterns as
regular users?
How do IDE users copy
and paste code across
different file formats?
15
16
Copy
//Code fragment
Paste
//Code fragment
Inside the same file Between different files
Copy
//Code fragment
//Code fragment
Paste
17
Copy
//Code fragment
Paste
//Code fragment
Inside the same file Between different files
Copy
//Code fragment
//Code fragment
Paste
IDE users often C&P within the same file
IDE users perform consecutive
C&P
A
18
Repeat
Copy
CCopy
B
Paste
D Paste
IDE users perform consecutive
C&P
A
B
C
19
Distribution
Copy
Paste
Paste
IDE users perform consecutive
C&P
A B C
20
Relay
Copy
CopyPaste
Paste
IDE users often perform relay
on C&P
A
C
B
D
A
B
C
A B C
21
Repeat Distribution
Relay
C&P behavior of IDE users is
different from regular users
IDE Users
 Higher Within
 Higher Relay
 Lower Distribution
Regular Users
 Higher Between
 Lower Relay
 Higher Distribution
Eclipse IDE requires tailored C&P support tools that differ
from regular users’ C&P tools
22
Do IDE users follow the
same C&P patterns as
regular users?
How do IDE users copy
and paste code across
different file formats?
23
There are major differences
between C&P behavior of Eclipse
IDE users and C&P behavior of
regular users.
Do IDE users follow the
same C&P patterns as
regular users?
How do IDE users copy
and paste code across
different file formats?
24
There are major differences
between C&P behavior of Eclipse
IDE users and C&P behavior of
regular users.
There exists large number of C&P
between editors, hence, clone
detection techniques would
consider detect clones across
different languages.
Summary
25
26

More Related Content

What's hot

20 Facts about Swift programming language
20 Facts about Swift programming language20 Facts about Swift programming language
20 Facts about Swift programming languageRohit Tirkey
 
Computer programming tools and building process
Computer programming tools and building processComputer programming tools and building process
Computer programming tools and building processArghodeepPaul
 
What Do Developers Discuss about Code Comments?
What Do Developers Discuss about Code Comments?What Do Developers Discuss about Code Comments?
What Do Developers Discuss about Code Comments?Pooja Rani
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of codeShwe Yee
 
What is c#
What is c#What is c#
What is c#shwet18
 
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentPooja Rani
 
Difference between python and cython
Difference between python and cythonDifference between python and cython
Difference between python and cythonMindfire LLC
 
C# programming language
C# programming languageC# programming language
C# programming languageswarnapatil
 
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...Andrey Karpov
 
What Prompts Swift App Developers to Go with Xcode 7.3.1
What Prompts Swift App Developers to Go with Xcode 7.3.1What Prompts Swift App Developers to Go with Xcode 7.3.1
What Prompts Swift App Developers to Go with Xcode 7.3.1Root Info Solutions
 

What's hot (20)

Swift Introduction
Swift IntroductionSwift Introduction
Swift Introduction
 
20 Facts about Swift programming language
20 Facts about Swift programming language20 Facts about Swift programming language
20 Facts about Swift programming language
 
Ide description
Ide descriptionIde description
Ide description
 
Computer programming tools and building process
Computer programming tools and building processComputer programming tools and building process
Computer programming tools and building process
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 
What Do Developers Discuss about Code Comments?
What Do Developers Discuss about Code Comments?What Do Developers Discuss about Code Comments?
What Do Developers Discuss about Code Comments?
 
ASSIGNMENT
ASSIGNMENTASSIGNMENT
ASSIGNMENT
 
Python Assignment Help
Python Assignment HelpPython Assignment Help
Python Assignment Help
 
C#
C#C#
C#
 
Ide
IdeIde
Ide
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
 
What is c#
What is c#What is c#
What is c#
 
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessment
 
Let's Explore C# 6
Let's Explore C# 6Let's Explore C# 6
Let's Explore C# 6
 
Tutorial csharp
Tutorial csharpTutorial csharp
Tutorial csharp
 
Difference between python and cython
Difference between python and cythonDifference between python and cython
Difference between python and cython
 
C# programming language
C# programming languageC# programming language
C# programming language
 
Chapter 3 Excel Macros
Chapter 3 Excel MacrosChapter 3 Excel Macros
Chapter 3 Excel Macros
 
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
 
What Prompts Swift App Developers to Go with Xcode 7.3.1
What Prompts Swift App Developers to Go with Xcode 7.3.1What Prompts Swift App Developers to Go with Xcode 7.3.1
What Prompts Swift App Developers to Go with Xcode 7.3.1
 

Viewers also liked

Want to Know How To Create Viral Content?
Want to Know How To Create Viral Content? Want to Know How To Create Viral Content?
Want to Know How To Create Viral Content? Christina Adams
 
Plataformas para crear una presentación en línea.mafe
Plataformas para crear una presentación en línea.mafePlataformas para crear una presentación en línea.mafe
Plataformas para crear una presentación en línea.mafeSantiago Baena Rivera
 
Niemiecka sztuka-wojenna-w-czasach-mieszka-i
Niemiecka sztuka-wojenna-w-czasach-mieszka-iNiemiecka sztuka-wojenna-w-czasach-mieszka-i
Niemiecka sztuka-wojenna-w-czasach-mieszka-iKsięgarnia Grzbiet
 
Osteoporosis
Osteoporosis Osteoporosis
Osteoporosis SAMFYRE
 
Problem Solving Presentation Ppt
Problem Solving Presentation PptProblem Solving Presentation Ppt
Problem Solving Presentation Pptcutehalle
 
Stopping by Woods on a Snowy Evening
Stopping by Woods  on a Snowy Evening Stopping by Woods  on a Snowy Evening
Stopping by Woods on a Snowy Evening NikunjBhatti
 
Benefits or Importance of Advertisements
Benefits or Importance of AdvertisementsBenefits or Importance of Advertisements
Benefits or Importance of AdvertisementsNikunjBhatti
 

Viewers also liked (11)

Emergency management
Emergency managementEmergency management
Emergency management
 
Want to Know How To Create Viral Content?
Want to Know How To Create Viral Content? Want to Know How To Create Viral Content?
Want to Know How To Create Viral Content?
 
Plataformas para crear una presentación en línea.mafe
Plataformas para crear una presentación en línea.mafePlataformas para crear una presentación en línea.mafe
Plataformas para crear una presentación en línea.mafe
 
Niemiecka sztuka-wojenna-w-czasach-mieszka-i
Niemiecka sztuka-wojenna-w-czasach-mieszka-iNiemiecka sztuka-wojenna-w-czasach-mieszka-i
Niemiecka sztuka-wojenna-w-czasach-mieszka-i
 
Los trábajos de hércules
Los trábajos de hérculesLos trábajos de hércules
Los trábajos de hércules
 
Trabajo de Informatica
Trabajo de InformaticaTrabajo de Informatica
Trabajo de Informatica
 
PPT ISCLO fix
PPT ISCLO fixPPT ISCLO fix
PPT ISCLO fix
 
Osteoporosis
Osteoporosis Osteoporosis
Osteoporosis
 
Problem Solving Presentation Ppt
Problem Solving Presentation PptProblem Solving Presentation Ppt
Problem Solving Presentation Ppt
 
Stopping by Woods on a Snowy Evening
Stopping by Woods  on a Snowy Evening Stopping by Woods  on a Snowy Evening
Stopping by Woods on a Snowy Evening
 
Benefits or Importance of Advertisements
Benefits or Importance of AdvertisementsBenefits or Importance of Advertisements
Benefits or Importance of Advertisements
 

Similar to MSR 2015

Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverterJaoued Ahmed
 
iOS Development at Scale @Chegg
iOS Development at Scale @CheggiOS Development at Scale @Chegg
iOS Development at Scale @CheggGalOrlanczyk
 
A Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesA Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesTao Xie
 
Droidcon thessaloniki 2015
Droidcon thessaloniki 2015Droidcon thessaloniki 2015
Droidcon thessaloniki 2015Raymond Chenon
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 
C# c# for beginners crash course master c# programming fast and easy today
C# c# for beginners crash course master c# programming fast and easy todayC# c# for beginners crash course master c# programming fast and easy today
C# c# for beginners crash course master c# programming fast and easy todayAfonso Macedo
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The UglyMin-Yih Hsu
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine JonesJisc RDM
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
 
Node1 developer marketing
Node1 developer marketingNode1 developer marketing
Node1 developer marketingGerald Been
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...PROIDEA
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)dmgerman
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Manoj Ellappan
 
ContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native DeveloperContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native DeveloperDocker-Hanoi
 
#2 open source introduction
#2 open source introduction#2 open source introduction
#2 open source introductionsscholle
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweDevOps.com
 

Similar to MSR 2015 (20)

Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
iOS Development at Scale @Chegg
iOS Development at Scale @CheggiOS Development at Scale @Chegg
iOS Development at Scale @Chegg
 
A Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesA Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile Devices
 
Droidcon thessaloniki 2015
Droidcon thessaloniki 2015Droidcon thessaloniki 2015
Droidcon thessaloniki 2015
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
C# c# for beginners crash course master c# programming fast and easy today
C# c# for beginners crash course master c# programming fast and easy todayC# c# for beginners crash course master c# programming fast and easy today
C# c# for beginners crash course master c# programming fast and easy today
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine Jones
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
 
Node1 developer marketing
Node1 developer marketingNode1 developer marketing
Node1 developer marketing
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
 
ContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native DeveloperContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native Developer
 
#2 open source introduction
#2 open source introduction#2 open source introduction
#2 open source introduction
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & Zowe
 
SIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop PresentationSIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop Presentation
 

More from swy351

SEMLA_logging_infra
SEMLA_logging_infraSEMLA_logging_infra
SEMLA_logging_infraswy351
 
Msr2016 tarek
Msr2016 tarek Msr2016 tarek
Msr2016 tarek swy351
 
MSR 2009
MSR 2009MSR 2009
MSR 2009swy351
 
ASE2010
ASE2010ASE2010
ASE2010swy351
 
WCRE2011
WCRE2011WCRE2011
WCRE2011swy351
 
ICSE2013
ICSE2013ICSE2013
ICSE2013swy351
 
ICSE2014
ICSE2014ICSE2014
ICSE2014swy351
 
ICSME2014
ICSME2014ICSME2014
ICSME2014swy351
 
ICPE2015
ICPE2015ICPE2015
ICPE2015swy351
 

More from swy351 (9)

SEMLA_logging_infra
SEMLA_logging_infraSEMLA_logging_infra
SEMLA_logging_infra
 
Msr2016 tarek
Msr2016 tarek Msr2016 tarek
Msr2016 tarek
 
MSR 2009
MSR 2009MSR 2009
MSR 2009
 
ASE2010
ASE2010ASE2010
ASE2010
 
WCRE2011
WCRE2011WCRE2011
WCRE2011
 
ICSE2013
ICSE2013ICSE2013
ICSE2013
 
ICSE2014
ICSE2014ICSE2014
ICSE2014
 
ICSME2014
ICSME2014ICSME2014
ICSME2014
 
ICPE2015
ICPE2015ICPE2015
ICPE2015
 

Recently uploaded

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

MSR 2015

  • 1. An Empirical Study of the Copy and Paste Behavior during Development Tarek M. Ahmed 1 Weiyi Shang Ahmed E. Hassan
  • 2. Copy & Paste leads to clones //Code fragment Copy 2 //Code fragment Paste
  • 3. //Code fragment Copy //Code fragment Paste Copy & Paste leads to clones 3 Large number of code clones
  • 4. Clone detection tools detect C&P after it is performed Source Code Clone Detection 4 Code Clones
  • 5. There exists no large scale C&P study on developers 5 Controlled ExperimentSmall number Experienced only
  • 6. Larger scale study exists on regular users • Regular computer users • Non-Software development tasks A large scale C&P study is needed for software development tasks 6
  • 7. Eclipse Usage Data Collector (UDC) enables a large scale C&P study 20 Months 7 >1 Millions Users
  • 8. How to detect C&P in Eclipse UDC User ID What Kind … Description 104526 Executed Command org.eclipse.ui.edit.copy User performs Copy 8
  • 9. How to detect C&P in Eclipse UDC User ID What Kind … Description 104526 Executed Command org.eclipse.ui.edit.copy 104526 Executed Command org.eclipse.ui.edit.paste User performs Paste 9
  • 10. Our study focuses on users who frequently and actively use Eclipse Create Development Sessions 10 Find Active Sessions Find Frequent Users
  • 11. 20 Months 11 4 Million C&P20,000 Users
  • 12. Uncovering the C&P behavior of IDE users 12
  • 13. Average number of C&P per hour is different from recent studies 13 2.73 16 Our finding Previous finding #Commands > Average #Commands + 1 Standard deviation #Commands > Average #Commands + 2 Standard deviation Heavy Editing Sessions V. Heavy Editing Sessions 11.39 13.18
  • 14. Do IDE users follow the same C&P patterns as regular users? How do IDE users copy and paste code across different file formats? 14
  • 15. Do IDE users follow the same C&P patterns as regular users? How do IDE users copy and paste code across different file formats? 15
  • 16. 16 Copy //Code fragment Paste //Code fragment Inside the same file Between different files Copy //Code fragment //Code fragment Paste
  • 17. 17 Copy //Code fragment Paste //Code fragment Inside the same file Between different files Copy //Code fragment //Code fragment Paste IDE users often C&P within the same file
  • 18. IDE users perform consecutive C&P A 18 Repeat Copy CCopy B Paste D Paste
  • 19. IDE users perform consecutive C&P A B C 19 Distribution Copy Paste Paste
  • 20. IDE users perform consecutive C&P A B C 20 Relay Copy CopyPaste Paste
  • 21. IDE users often perform relay on C&P A C B D A B C A B C 21 Repeat Distribution Relay
  • 22. C&P behavior of IDE users is different from regular users IDE Users  Higher Within  Higher Relay  Lower Distribution Regular Users  Higher Between  Lower Relay  Higher Distribution Eclipse IDE requires tailored C&P support tools that differ from regular users’ C&P tools 22
  • 23. Do IDE users follow the same C&P patterns as regular users? How do IDE users copy and paste code across different file formats? 23 There are major differences between C&P behavior of Eclipse IDE users and C&P behavior of regular users.
  • 24. Do IDE users follow the same C&P patterns as regular users? How do IDE users copy and paste code across different file formats? 24 There are major differences between C&P behavior of Eclipse IDE users and C&P behavior of regular users. There exists large number of C&P between editors, hence, clone detection techniques would consider detect clones across different languages.
  • 26. 26