SlideShare una empresa de Scribd logo
1 de 22
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

Más contenido relacionado

La actualidad más candente

Six Steps to Conversation Driven Development
Six Steps to Conversation Driven DevelopmentSix Steps to Conversation Driven Development
Six Steps to Conversation Driven DevelopmentRasa Technologies
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsLemi Orhan Ergin
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?SARCCOM
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development EnvironmentsPhilip Johnson
 
Jenkins User Conference: Building Your Continuous Delivery Toolkit
Jenkins User Conference: Building Your Continuous Delivery ToolkitJenkins User Conference: Building Your Continuous Delivery Toolkit
Jenkins User Conference: Building Your Continuous Delivery ToolkitXebiaLabs
 
Slides for Houston iPhone Developers' Meetup (April 2012)
Slides for Houston iPhone Developers' Meetup (April 2012)Slides for Houston iPhone Developers' Meetup (April 2012)
Slides for Houston iPhone Developers' Meetup (April 2012)lqi
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Ahmed Misbah
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSvetlin Nakov
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014Dani Mannes
 
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
 
Web UI testing using Ruby,Watir and Cucumber with BDD technique
Web UI testing using Ruby,Watir and Cucumber with BDD techniqueWeb UI testing using Ruby,Watir and Cucumber with BDD technique
Web UI testing using Ruby,Watir and Cucumber with BDD techniquearpith pathange
 
Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Technologies
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringAndy Maleh
 
Expertise in Software Development
Expertise in Software DevelopmentExpertise in Software Development
Expertise in Software DevelopmentQAware GmbH
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus Langu
 

La actualidad más candente (20)

Six Steps to Conversation Driven Development
Six Steps to Conversation Driven DevelopmentSix Steps to Conversation Driven Development
Six Steps to Conversation Driven Development
 
Software Design
Software DesignSoftware Design
Software Design
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and Ethics
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development Environments
 
Jenkins User Conference: Building Your Continuous Delivery Toolkit
Jenkins User Conference: Building Your Continuous Delivery ToolkitJenkins User Conference: Building Your Continuous Delivery Toolkit
Jenkins User Conference: Building Your Continuous Delivery Toolkit
 
Slides for Houston iPhone Developers' Meetup (April 2012)
Slides for Houston iPhone Developers' Meetup (April 2012)Slides for Houston iPhone Developers' Meetup (April 2012)
Slides for Houston iPhone Developers' Meetup (April 2012)
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019
 
Introduction
IntroductionIntroduction
Introduction
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014
 
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?
 
Web UI testing using Ruby,Watir and Cucumber with BDD technique
Web UI testing using Ruby,Watir and Cucumber with BDD techniqueWeb UI testing using Ruby,Watir and Cucumber with BDD technique
Web UI testing using Ruby,Watir and Cucumber with BDD technique
 
Software Design patterns on Android English
Software Design patterns on Android EnglishSoftware Design patterns on Android English
Software Design patterns on Android English
 
Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Open Source - What's next?
Rasa Open Source - What's next?
 
Codesmells for AspectJ
Codesmells for AspectJCodesmells for AspectJ
Codesmells for AspectJ
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
 
Expertise in Software Development
Expertise in Software DevelopmentExpertise in Software Development
Expertise in Software Development
 
Hira Xp
Hira XpHira Xp
Hira Xp
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 

Destacado

1.0 about software configuration management trainings
1.0   about software configuration management trainings1.0   about software configuration management trainings
1.0 about software configuration management trainingsSergii Shmarkatiuk
 
1.1 introduction to scm - xp and cm are chicken-and-egg
1.1   introduction to scm - xp and cm are chicken-and-egg1.1   introduction to scm - xp and cm are chicken-and-egg
1.1 introduction to scm - xp and cm are chicken-and-eggSergii Shmarkatiuk
 
Software version numbering - DSL of change
Software version numbering - DSL of changeSoftware version numbering - DSL of change
Software version numbering - DSL of changeSergii Shmarkatiuk
 
CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...Sergii Shmarkatiuk
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementBill Thayer
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementVirendra Thakur
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Managementelliando dias
 
Process Improvement for better Software Technical Quality under Global Crisis...
Process Improvement for better Software Technical Quality under Global Crisis...Process Improvement for better Software Technical Quality under Global Crisis...
Process Improvement for better Software Technical Quality under Global Crisis...Optimyth Software
 
Internet of things for the “smart home”
Internet of things for the “smart home”Internet of things for the “smart home”
Internet of things for the “smart home”Virendra Thakur
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version ControlSergii Shmarkatiuk
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment ManagementSergii Shmarkatiuk
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Managementsslovepk
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration managementfizamustanser
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleKittitouch Suteeca
 
Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29koolkampus
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Nishkarsh Gupta
 

Destacado (20)

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

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

API Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesAPI Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesTom Johnson
 
Generation of Automatic Code using Design Patterns
Generation of Automatic Code using Design PatternsGeneration of Automatic Code using Design Patterns
Generation of Automatic Code using Design PatternsIRJET Journal
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Robin O'Brien
 
Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Shimmy88
 
Emerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileEmerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileShimmy88
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering ApproachArunit Gupta
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWDVikas Sarin
 
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLS
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLSREQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLS
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLSMax Völkel
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship ChecklistRyan Polk
 
Writing code samples for API/SDK documentation
Writing code samples for API/SDK documentationWriting code samples for API/SDK documentation
Writing code samples for API/SDK documentationTom Johnson
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3Warui Maina
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptxDylanTilbury1
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseKenan Sevindik
 
Requirementv4
Requirementv4Requirementv4
Requirementv4stat
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements EngineeringKristen Wilson
 

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

API Workshop: Deep dive into code samples
API Workshop: Deep dive into code samplesAPI Workshop: Deep dive into code samples
API Workshop: Deep dive into code samples
 
Generation of Automatic Code using Design Patterns
Generation of Automatic Code using Design PatternsGeneration of Automatic Code using Design Patterns
Generation of Automatic Code using Design Patterns
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
 
Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2
 
Emerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileEmerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobile
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering Approach
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLS
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLSREQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLS
REQUIREMENTS FOR PERSONAL KNOWLEDGE MANAGEMENT TOOLS
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Writing code samples for API/SDK documentation
Writing code samples for API/SDK documentationWriting code samples for API/SDK documentation
Writing code samples for API/SDK documentation
 
Maheroo_C_14094229_Report
Maheroo_C_14094229_ReportMaheroo_C_14094229_Report
Maheroo_C_14094229_Report
 
Code Review
Code ReviewCode Review
Code Review
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
 
Dtacs
DtacsDtacs
Dtacs
 
inernship ppt.ppt
inernship ppt.pptinernship ppt.ppt
inernship ppt.ppt
 
Requirementv4
Requirementv4Requirementv4
Requirementv4
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements Engineering
 

Más de Sergii Shmarkatiuk

CS519 - homework project presentation
CS519 - homework project presentationCS519 - homework project presentation
CS519 - homework project presentationSergii Shmarkatiuk
 
CS519 - project idea presentation
CS519 - project idea presentationCS519 - project idea presentation
CS519 - project idea presentationSergii Shmarkatiuk
 
CS519 - Cloud Types for Eventual Consistency
CS519 - Cloud Types for Eventual ConsistencyCS519 - Cloud Types for Eventual Consistency
CS519 - Cloud Types for Eventual ConsistencySergii Shmarkatiuk
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell usSergii Shmarkatiuk
 
04 - Agile Software Configuration Management
04 - Agile Software Configuration Management04 - Agile Software Configuration Management
04 - Agile Software Configuration ManagementSergii Shmarkatiuk
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration managementSergii Shmarkatiuk
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийSergii Shmarkatiuk
 
Организуй свой репозиторий
Организуй свой репозиторийОрганизуй свой репозиторий
Организуй свой репозиторийSergii Shmarkatiuk
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 

Más de Sergii Shmarkatiuk (10)

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

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 

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