SlideShare a Scribd company logo
ALIGNING DEVELOPMENT
TOOLS WITH THE WAY
PROGRAMMERS THINK
ABOUT CODE CHANGES
Presentation type: paper review
Class: CS 584 – Human Aspects of Programming Languages
Presenter: Sergii Shmarkatiuk
Date: 10/15/2013
MOTIVATION

Developers need to perform many similar
source code editing operations that could
be grouped and executed at once

2
MOTIVATION

But there is no suitable tool that would
allow to do that in an intuitive, consistent
and error-free manner

3
EXISTING APPROACHES
 Text-based



Regular expressions
SED + AWK

 IDE



tools

based tools

Standard ‘search and replace’ functionality
Refactoring features

 Structure-based

source code manipulation
tools (abstract syntax tree visualization)




A*
TAWK
Stratego/XT

4
DISADVANTAGES OF EXISTING
APPROACHES
Regular expressions Difficult to read and
understand
Powerful, but even more
 SED + AWK
difficult to read and understand








IDE-based
refactoring

Does not allow to create custom
transformations

IDE-based ‘search
and replace’

Treats source code as a flat,
structureless text

AST-based tools

Difficult to understand

5
PROPOSED SOLUTION

Design and implementation of visual tool
based on following principles:
Combination of textual and graphical elements
 From-example construction and iterative
refinement approach (based on edit-by-example
principle)
 Intuitive representation, which naturally fits into
the programmers’ perception of the source code
 Assisting developers with creating and
manipulating transformations
 Early errors detection and correction


6
EXAMPLE. STEP 1

7
EXAMPLE. STEP 2

8
EXAMPLE. STEP 3

9
EXAMPLE. STEP 4

10
EXAMPLE. STEP 5

11
METHODOLOGY
Clear definition of goal (source code transformations
generation) and target audience (experienced Javadevelopers)
 Prototype implementation
 3 iterations of prototype verification based on
compliance with Cognitive Dimensions
 Empirical study with few target audience
representatives








Pre-study interview
Training session
Code-editing task
Post-study interview based on Cognitive Dimensions
questionnaire optimized for users
Evaluation of study results using Cognitive Dimensions
framework

12
COMPARISON WITH ANOTHER
EXISTING SOLUTION

RegExp-based ‘search and replace’ in IDEs and
popular text editors
Advantages

Works by default in
Eclipse, IntelliJ IDEA,
NetBeans, Visual
Studio, Notepad++,
SciTE, UltraEdit, …
 Language-agnostic
approach
 Powerful and flexible
 Possibility of rollback


Disadvantages

Regular expressions
are difficult to read
and understand
 Special syntax for
matches reference
 Different
implementations in
different tools


13
SHORT DEMO
14
INSIGHT/IDEA

Two approaches could be integrated
1. Apply edit-by-example principle to generate
RegExp
var1 & var2

to regexp

(w*) & (w*)

2. Add functionality for handling RegExp block
references
firstMatch

secondMatch

(w*) & (w*)

transformation

firstMatch secondMatch

~(~1 | ~2)

15
INSIGHTS/IDEAS

FOR MY PROJECT

 Application

of similar methodology
 Combination of textual, graphic and UI
elements
 Study of target users’ perception/intuition
 Application of Cognitive Dimensions
framework
 Extension of edit-by-example approach

16
QUESTION GROUPS

Evaluation

Regular
expressions

End-user
mindset

Experts vs nonexperienced
programmers

Real source
maintenance
concerns

Other

17
QUESTIONS:

EVALUATION

Zhang, Chaoqiang: I am a little bit surprised that the
evaluation part of this part only has treatment group and
no control group. In my mind, if they could have another
group to use sed utility(maybe give them a little bit
training) and see if they could finish the task better, and
the comparison of these two groups maybe make the
evaluation more convincing
Mihai Codoban: The evaluation does not compare how
much better iXj is in comparison to existing techniques
(refactorings, “errors as todos”, etc). Does this disqualify
the authors’ statements that iXj is easier, faster and more
intuitive than current approaches? Is it just a fancy
language aware regular expression editor?

18
QUESTIONS: REGULAR EXPRESSIONS




Zhang, Chaoqiang: I am sort of concerned
about this language's expressive power. Can it
generally express any regular expression? If it is
not, maybe expert programmers (the target users
of this language) would prefer polishing their
regular expression skill to learning this tool?
Michael Mendes: Do you think future versions
of this tool should be IDE-independent, and why?

19
QUESTIONS:




END-USER MINDSET

Jun Xie: In the paper, there is one statement: This
design allows programmers to perform directmanipulation of a representation that aligns well
with their mental model of source code. What is the
programmers' mental model of source code?
Michael Slater: I looked through this paper and
couldn't find any listing of the programmers' mental
models that were used to compare to the
representations of the tool. I could see the basic Java
code structure in the paper, but that was it. Is this
paper claiming that programmers think of their
software only in terms of the structures Java offers?
Can we legitimately claim anything regarding
programmers' mental models when the programmers
didn't know the source code used in the study?

20
QUESTIONS:

EXPERTS VS NON-

EXPERTS





Catharina Vijay: How could iXj help people less
experienced at code maintenance?
Wojtek Rajski: I understand that iXj has experts in
mind. But novice programmers will sometimes realize
during the build process that they have to change
how a fundamental part of the code works. How
would the requirements for CDs change for
intermediate level programmers?
Krishna Pratik: I believe expert programmers would
not be good participants as they might
unintentionally portray using the tool as being too
simple to use for code transformations. To better test
the utility of the application, shouldn't the study be
conducted by novice-middle experienced
programmers?

21
QUESTIONS:

OTHER

William Jernigan: What can we do as study
designers to avoid situations where participants
may diverge from the expected behavior like
Boshernitsan et al experience, cited in the
Metrics section where the authors say: “two
participants decided to perform several
transformations that were not on the list,
because they ‘seemed appropriate.” ?
 William Jernigan: In the beginning stages of
the design process, Boshernitsan et al studied
development/change logs for TEX, XEmacs, and a
transcript from Martin and Koss. How specific
are these change logs to the design they wanted
to achieve? How do we determine what to review
and study when creating a design besides the
specific user for whom we are designing?


22

More Related Content

PPTX
CS519 - Visual Software Evolution Reconstruction
PPTX
Continuous integration for se group meeting
PDF
Software Analysis using Natural Language Queries
PDF
Let linguistics guide software analysis
PPTX
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
PPTX
Reducing Technical Debt
PPTX
The Role of the Software Architect (short version)
PDF
Comment soup with a pinch of types, served in a leaky bowl
CS519 - Visual Software Evolution Reconstruction
Continuous integration for se group meeting
Software Analysis using Natural Language Queries
Let linguistics guide software analysis
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
Reducing Technical Debt
The Role of the Software Architect (short version)
Comment soup with a pinch of types, served in a leaky bowl

What's hot (20)

PDF
Six Steps to Conversation Driven Development
PPTX
Software Design
PDF
Professional Software Development, Practices and Ethics
PPTX
Is your code SOLID enough?
PPT
Interactive Development Environments
PDF
Jenkins User Conference: Building Your Continuous Delivery Toolkit
PPTX
Slides for Houston iPhone Developers' Meetup (April 2012)
 
PPTX
Agile Software Development and DevOps 21092019
PPT
Software Engineering Fundamentals - Svetlin Nakov
PDF
Agile archiecture iltam 2014
PDF
What Do Developers Discuss about Code Comments?
PPTX
Web UI testing using Ruby,Watir and Cucumber with BDD technique
PDF
Software Design patterns on Android English
PDF
Rasa Open Source - What's next?
PDF
Codesmells for AspectJ
PPTX
Software Craftsmanship VS Software Engineering
PDF
Expertise in Software Development
PPTX
Behavior Driven Development with AngularJS & Jasmine
ODP
Documenting code yapceu2016
Six Steps to Conversation Driven Development
Software Design
Professional Software Development, Practices and Ethics
Is your code SOLID enough?
Interactive Development Environments
Jenkins User Conference: Building Your Continuous Delivery Toolkit
Slides for Houston iPhone Developers' Meetup (April 2012)
 
Agile Software Development and DevOps 21092019
Software Engineering Fundamentals - Svetlin Nakov
Agile archiecture iltam 2014
What Do Developers Discuss about Code Comments?
Web UI testing using Ruby,Watir and Cucumber with BDD technique
Software Design patterns on Android English
Rasa Open Source - What's next?
Codesmells for AspectJ
Software Craftsmanship VS Software Engineering
Expertise in Software Development
Behavior Driven Development with AngularJS & Jasmine
Documenting code yapceu2016
Ad

Viewers also liked (20)

PPTX
1.0 about software configuration management trainings
PPTX
1.1 introduction to scm - xp and cm are chicken-and-egg
PPTX
Software version numbering - DSL of change
PPTX
CS589 paper presentation - What is in unison? A formal specification and refe...
PPTX
05 - Merge Management
PPT
Software Configuration Management
PPTX
Software Configuration Management
PPT
Configuration Management
PPTX
Process Improvement for better Software Technical Quality under Global Crisis...
PPTX
Internet of things for the “smart home”
PPTX
Software Configuration Management
PPTX
03 - Continuous Integration
PPTX
01 - Introduction to Version Control
PPTX
02 - Build and Deployment Management
PPTX
Ch 8 configuration management
PPT
Configuration Management
PPTX
Software configuration management
PPTX
Ch 7 integrating quality activities in the projectlife cycle
PPT
Configuration Management in Software Engineering - SE29
PPTX
Software Configuration Management (SCM)
1.0 about software configuration management trainings
1.1 introduction to scm - xp and cm are chicken-and-egg
Software version numbering - DSL of change
CS589 paper presentation - What is in unison? A formal specification and refe...
05 - Merge Management
Software Configuration Management
Software Configuration Management
Configuration Management
Process Improvement for better Software Technical Quality under Global Crisis...
Internet of things for the “smart home”
Software Configuration Management
03 - Continuous Integration
01 - Introduction to Version Control
02 - Build and Deployment Management
Ch 8 configuration management
Configuration Management
Software configuration management
Ch 7 integrating quality activities in the projectlife cycle
Configuration Management in Software Engineering - SE29
Software Configuration Management (SCM)
Ad

Similar to CS 584 - Aligning development tools with the way programmers think about code changes (20)

PDF
Programmer Productivity Enhancement Through Controlled Natural Language Input
PPTX
Software tetsing paper related to industry
PDF
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
PDF
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
PDF
SBQS 2013 Keynote: Cooperative Testing and Analysis
PPTX
Automatic for the People
PDF
Wiki dev nlp
PDF
Programming Languages #devcon2013
PDF
Executable specifications for xtext
PPT
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
PPTX
Synergy of Human and Artificial Intelligence in Software Engineering
PDF
Driving Quality with TDD
ODP
Automating good coding practices
PDF
Java Programming
PDF
Hacking UX : Design Thinking for Techies
PDF
UX 101: User Research methods to kickstart your project
PDF
Staroletov testing TDD BDD MBT
PDF
Raising the Bar
PPTX
The pragmatic programmer
PDF
ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...
Programmer Productivity Enhancement Through Controlled Natural Language Input
Software tetsing paper related to industry
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
SBQS 2013 Keynote: Cooperative Testing and Analysis
Automatic for the People
Wiki dev nlp
Programming Languages #devcon2013
Executable specifications for xtext
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
Synergy of Human and Artificial Intelligence in Software Engineering
Driving Quality with TDD
Automating good coding practices
Java Programming
Hacking UX : Design Thinking for Techies
UX 101: User Research methods to kickstart your project
Staroletov testing TDD BDD MBT
Raising the Bar
The pragmatic programmer
ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...

More from Sergii Shmarkatiuk (10)

PPTX
CS519 - homework project presentation
PPTX
CS519 - project idea presentation
PPTX
CS519 - Cloud Types for Eventual Consistency
PPTX
1.2 introduction to scm - what does version number tell us
PPTX
04 - Agile Software Configuration Management
PPT
Breath of life
PPTX
Agile software configuration management
PPTX
управление сборками и развертыванием веб приложений
PPTX
Организуй свой репозиторий
PPTX
метод организации репозитория исходного кода
CS519 - homework project presentation
CS519 - project idea presentation
CS519 - Cloud Types for Eventual Consistency
1.2 introduction to scm - what does version number tell us
04 - Agile Software Configuration Management
Breath of life
Agile software configuration management
управление сборками и развертыванием веб приложений
Организуй свой репозиторий
метод организации репозитория исходного кода

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Empathic Computing: Creating Shared Understanding
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Understanding_Digital_Forensics_Presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
MYSQL Presentation for SQL database connectivity
Diabetes mellitus diagnosis method based random forest with bat algorithm
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Monthly Chronicles - July 2025
Review of recent advances in non-invasive hemoglobin estimation
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Understanding_Digital_Forensics_Presentation.pptx

CS 584 - Aligning development tools with the way programmers think about code changes

  • 1. ALIGNING DEVELOPMENT TOOLS WITH THE WAY PROGRAMMERS THINK ABOUT CODE CHANGES Presentation type: paper review Class: CS 584 – Human Aspects of Programming Languages Presenter: Sergii Shmarkatiuk Date: 10/15/2013
  • 2. MOTIVATION Developers need to perform many similar source code editing operations that could be grouped and executed at once 2
  • 3. MOTIVATION But there is no suitable tool that would allow to do that in an intuitive, consistent and error-free manner 3
  • 4. EXISTING APPROACHES  Text-based   Regular expressions SED + AWK  IDE   tools based tools Standard ‘search and replace’ functionality Refactoring features  Structure-based source code manipulation tools (abstract syntax tree visualization)    A* TAWK Stratego/XT 4
  • 5. DISADVANTAGES OF EXISTING APPROACHES Regular expressions Difficult to read and understand Powerful, but even more  SED + AWK difficult to read and understand     IDE-based refactoring Does not allow to create custom transformations IDE-based ‘search and replace’ Treats source code as a flat, structureless text AST-based tools Difficult to understand 5
  • 6. PROPOSED SOLUTION Design and implementation of visual tool based on following principles: Combination of textual and graphical elements  From-example construction and iterative refinement approach (based on edit-by-example principle)  Intuitive representation, which naturally fits into the programmers’ perception of the source code  Assisting developers with creating and manipulating transformations  Early errors detection and correction  6
  • 12. METHODOLOGY Clear definition of goal (source code transformations generation) and target audience (experienced Javadevelopers)  Prototype implementation  3 iterations of prototype verification based on compliance with Cognitive Dimensions  Empirical study with few target audience representatives       Pre-study interview Training session Code-editing task Post-study interview based on Cognitive Dimensions questionnaire optimized for users Evaluation of study results using Cognitive Dimensions framework 12
  • 13. COMPARISON WITH ANOTHER EXISTING SOLUTION RegExp-based ‘search and replace’ in IDEs and popular text editors Advantages Works by default in Eclipse, IntelliJ IDEA, NetBeans, Visual Studio, Notepad++, SciTE, UltraEdit, …  Language-agnostic approach  Powerful and flexible  Possibility of rollback  Disadvantages Regular expressions are difficult to read and understand  Special syntax for matches reference  Different implementations in different tools  13
  • 15. INSIGHT/IDEA Two approaches could be integrated 1. Apply edit-by-example principle to generate RegExp var1 & var2 to regexp (w*) & (w*) 2. Add functionality for handling RegExp block references firstMatch secondMatch (w*) & (w*) transformation firstMatch secondMatch ~(~1 | ~2) 15
  • 16. INSIGHTS/IDEAS FOR MY PROJECT  Application of similar methodology  Combination of textual, graphic and UI elements  Study of target users’ perception/intuition  Application of Cognitive Dimensions framework  Extension of edit-by-example approach 16
  • 17. QUESTION GROUPS Evaluation Regular expressions End-user mindset Experts vs nonexperienced programmers Real source maintenance concerns Other 17
  • 18. QUESTIONS: EVALUATION Zhang, Chaoqiang: I am a little bit surprised that the evaluation part of this part only has treatment group and no control group. In my mind, if they could have another group to use sed utility(maybe give them a little bit training) and see if they could finish the task better, and the comparison of these two groups maybe make the evaluation more convincing Mihai Codoban: The evaluation does not compare how much better iXj is in comparison to existing techniques (refactorings, “errors as todos”, etc). Does this disqualify the authors’ statements that iXj is easier, faster and more intuitive than current approaches? Is it just a fancy language aware regular expression editor? 18
  • 19. QUESTIONS: REGULAR EXPRESSIONS   Zhang, Chaoqiang: I am sort of concerned about this language's expressive power. Can it generally express any regular expression? If it is not, maybe expert programmers (the target users of this language) would prefer polishing their regular expression skill to learning this tool? Michael Mendes: Do you think future versions of this tool should be IDE-independent, and why? 19
  • 20. QUESTIONS:   END-USER MINDSET Jun Xie: In the paper, there is one statement: This design allows programmers to perform directmanipulation of a representation that aligns well with their mental model of source code. What is the programmers' mental model of source code? Michael Slater: I looked through this paper and couldn't find any listing of the programmers' mental models that were used to compare to the representations of the tool. I could see the basic Java code structure in the paper, but that was it. Is this paper claiming that programmers think of their software only in terms of the structures Java offers? Can we legitimately claim anything regarding programmers' mental models when the programmers didn't know the source code used in the study? 20
  • 21. QUESTIONS: EXPERTS VS NON- EXPERTS    Catharina Vijay: How could iXj help people less experienced at code maintenance? Wojtek Rajski: I understand that iXj has experts in mind. But novice programmers will sometimes realize during the build process that they have to change how a fundamental part of the code works. How would the requirements for CDs change for intermediate level programmers? Krishna Pratik: I believe expert programmers would not be good participants as they might unintentionally portray using the tool as being too simple to use for code transformations. To better test the utility of the application, shouldn't the study be conducted by novice-middle experienced programmers? 21
  • 22. QUESTIONS: OTHER William Jernigan: What can we do as study designers to avoid situations where participants may diverge from the expected behavior like Boshernitsan et al experience, cited in the Metrics section where the authors say: “two participants decided to perform several transformations that were not on the list, because they ‘seemed appropriate.” ?  William Jernigan: In the beginning stages of the design process, Boshernitsan et al studied development/change logs for TEX, XEmacs, and a transcript from Martin and Koss. How specific are these change logs to the design they wanted to achieve? How do we determine what to review and study when creating a design besides the specific user for whom we are designing?  22