SlideShare a Scribd company logo
1 of 53
Download to read offline
Creating


Usable and Useful
Software Tools
Gail C. Murphy


University of British Columbia




@gail_murphy
2
Useful
Usable
Useful
Usable
- X
Too often a gap exists between
developers’ needs and tools
- X
Attention to usability and
usefulness can bridge the gap
Where we will end up
Usability + Usefulness Large-scale use
opportunity
requires
Understanding/study


of context of use
Impactful research


opportunities
Identify a problem Propose a tool
Consider usage
context
Build tool
Study tool in


context of use
Deploy License
Iterate
Roadmap
Propose a tool
Study tool in


context of use
Deploy License
Iterate
Part 1: Case study of refactoring tools
Based on the


Ph.D. work


of Anna


Eilertsen
Identify a problem
Build tool
Consider usage
context
Propose a tool
Study tool in


context of use
Deploy License
9
Iterate
Part 2: Re
fl
ections on tool research & development
Based on joint


work with


Dr. Mik Kersten
Identify a problem
Consider usage
context
Build tool
Part I: Case study of refactoring tools
11
Identify the problem (for refactoring)
“Maintenance tends to degrade the structure of software,
ultimately making maintenance more costly. At times, then, it is
worthwhile to manipulate the structure of a system
to make changes easier. However, it is shown that
manual restructuring is an error-prone and expensive activity.”
W.G. Griswold




Program Restructuring as an Aid to Software Maintenance, 1991
12
Propose a tool (refactoring)
Refactoring catalog


(Fowler)
Refactoring tools available in IDEs
1992
1991 2000
Proof-of-concept tools


(Griswold, Opdyke, Brandt)
Examples


Rename method / class


Extract class


Change method signature


Inline
13
Identify a problem Propose a tool
Consider usage
context
Study tool in
fi
eld study of
refactoring challenges
and bene
fi
ts
“Developers said they
do 86% of refactoring
manually”
[MPB12] [KZN12] [SSS15]
Challenges to


and solutions for


refactoring adoption
“59% of the
respondents were
dissatis
fi
ed with the
quality of available
refactoring tools”
[STV16]
55% of developers
“answered that
refactoring was
performed manually
without tool support”
Why we refactor?
Confessions of GitHub
contributors
[MPB12] [KZN12] [SSG15] [STV16]
Refactoring tools are under-utilized
15
16
Awareness
[MPB09, V+12,
STV16]
Inability to select
code
[MB08]
Predictability [V+12]
Trust
[MBP09, L+15,
STV16]
And many other
reasons…
Why are refactoring tools


under-utilized?
Identify a problem Propose a tool
Study tool in


context of use
Deploy License
Iterate
Consider usage
context
Build tool
18
Furda meras
Consider usage context…
19
Furda meras
Consider usage context…
Can study tool invocation


Can help improve usability


e.g., [MB08]


Modi
fi
cations may still limit overall use
(and usefulness)
20
Furda meras
Consider usage context…
Need to study tool use in likely tasks


Can lead to new requirements for tools


Consider interaction of usability and
usefulness
21
A study of refactorings during
software change tasks
Organize test
methods
1
Removing


redundant
methods
2
Overloaded
method
reduction
3
Tasks
[Eilertsen and Murphy, JSEP 2021]
15 male and 2 female


Average 10 years of experience
Participants
System Replica of part of Apache Commons-Lang
78k lines of Java, 1335 JUnit tests
A study of refactorings during
software change tasks
Organize test
methods
1
Removing


redundant
methods
2
Overloaded
method
reduction
3
Tasks
Applicable


refactorings
move-metho
d

extract-class
inline-metho
d

safe-delet
e

inline-metho
d

remove-paramete
r

Observation and interviews, up to 1.5 hours
32 hours of video, transcribed to 13k words
Method
Data
[Eilertsen and Murphy, JSEP 2021]
23
A study of refactorings during
software change tasks
VSC-diffs Investigate how code was changed and verify change
structural-navigation
Understand code and locate code that needs to
change
refactoring-tool Change code and organize change
test-suite
Understand code, understand impact of changes,
verify a change is correct
debug-tool Understand what code does
text-search
Find references, callers and declarations of methods
and parameters
compiler-output
Errors and warnings used to navigate code,
understand impact of changes and verify changes
copy/cut/paste Used to edit code
Tools used
[Eilertsen and Murphy, JSEP 2021]
24
A study of refactorings during
software change tasks
Local
Changes guided by local and immediate

feedback, such as from the compiler
Structure
Changes guided by code structure, such as

callers and references
Execute Changes guided by executing the test suite
Strategy
[Eilertsen and Murphy, JSEP 2021]
A study of refactorings during
software change tasks
Participants
Tasks
Local
Structure
Execute
Strategies were distributed participants and tasks
Individual participants sometimes used different strategies
[Eilertsen and Murphy, JSEP 2021]
A study of refactorings during
software change tasks
Refactoring tool use dropped off from considering the tool to actually using the tool
[Eilertsen and Murphy, JSEP 2021]
27
A study of refactorings during
software change tasks
[Eilertsen and Murphy, JSEP 2021]
28
A study of refactorings during
software change tasks
[Eilertsen and Murphy, JSEP 2021]
29
Themes
Dif
fi
culties controlling impact Loss of knowledge of code
[Eilertsen and Murphy, JSEP 2021]
30
The extent to which a system, product or
service can be used by speci
fi
ed users to
achieve speci
fi
ed goals with e
ff
ectiveness,
e
ffi
ciency and satisfaction in a speci
fi
ed
context of use.
Usability
Software developers employ refactoring tools
to help prepare or complete functional changes
to a software system. Software developers
seek these tools to be reasonable to locate and
apply for a desired intent (e
ff
ective), reasonable
in terms of time and e
ff
ort required to use the
tool (e
ffi
cient), and to add value to the
development process (satisfying).


Proposal for refactoring tools:
ISO 9241-11
[Eilertsen and Murphy, SANER 2021]
31
Analysis of study transcripts
for usability
[Eilertsen and Murphy, SANER 2021]
32
Analysis of study transcripts
for usability
Code Description
E
ff
ective User experiences tool as successfully performing a desired result
E
ffi
cient User experiences the tool as being fast or increasing productivity
Satisfaction User experiences having their needs or wants met by the use of the tool
Trust User experiences the tools as trustworthy, safe or reliable
Predictable
User understands up-front what will happen by using the tool or indicates
lack of surprise when using tool
[Eilertsen and Murphy, SANER 2021]
33
Analysis of study transcripts
for usability
Participants commented frequently on
the predictability of refactoring tools
[Eilertsen and Murphy, SANER 2021]
34
Considering a broader
population
Survey about tools


using in change tasks


46 respondents


35
Tool usability profiles
Copy-Cut-Paste Textual Search Compiler Output
Simple Refactoring


Tools
Developers do not think these


tools need to be satisfying
Simple refactoring tools (e.g., rename)


should be satisfying,


compiler should be trustworthy
[Eilertsen Ph.D. Thesis, to appear]
36
Tool usability profiles
Simple Refactoring


Tools
[Eilertsen Ph.D. Thesis, to appear]
Complex Refactoring


Tools
Note scales are slightly different on the top plots
37
What did we learn about
usefulness and usability of
refactoring tools?
Re
fi
ned Theory of Usability for Refactoring Tools
Software developers employ refactoring tools to help prepare
or complete functional changes to a software system. Software
developers seek these tools to be reasonable to locate, and
for the tools to help them assess the e
ffi
ciency of the tool, in
terms of the costs and bene
fi
ts of the tool, before its use. To
enable e
ff
ective use in multiple situations, software developers
seek to guide how a tool changes the source code for a
system; this ability to tailor how a tool works can improve the
e
ffi
ciency of the tool for the developer. Software developers
also seek refactoring tools to explain their impact to source
code so that the software developer can understand the
e
ff
ectiveness of the tool. Software developers also expect
tools to communicate clearly and directly in terms that match
how software developers perceive refactoring operations.
These characteristics in a refactoring tool increase the
satisfaction of the software developer using a refactoring tool.


Controlling Impact Retaining Knowledge
Identify a problem Propose a tool
Study tool in


context of use
Deploy License
Iterate
Consider usage
context
Build tool
39
Stepwise refactoring tools
Designed with attention to


usability themes learned


from usage of tools in


context of tasks


Assessed against common


problems with existing tools


from study of refactoring use
Eilertsen & Murphy, ICSME NIER 2021
Identify a problem Propose a tool
Study tool in


context of use
Deploy License
40
Iterate
Consider usage
context
Build tool
Opportunities to

continue study
 

of usage contexts
 

and new tool design
s

in context of use
Part 2: Re fl
ections on tool research & development
Propose a tool
Study tool in


context of use
Deploy License
42
Iterate
Based on joint


work with


Dr. Mik Kersten
Identify a problem
Consider usage
context
Build tool
Case study of Mylar/Mylyn/Tasktop
43
Timeline
MYLAR MYLYN TASKTOP
Mylar - task-focused interface for
Eclipse IDE




Mylyn - rename of Mylar 

Tasktop Technologies Inc. - created to
commercialize task-focused interface
2004 - Mylar created &
fi
rst industrial trial




2005 - Mylar open-sourced & large
fi
eld


study
2007 - Mylar renamed Mylyn




2007 - Tasktop created: individual & enterprise


sales (developer version)


2011 - Pivot to server version




2021 - Value stream management tools
44
2004 - Mylar created &
fi
rst industrial trial




2005 - Mylar open-sourced & large
fi
eld


study
2007 - Mylar renamed Mylyn




2007 - Tasktop created: individual & enterprise


sales (developer version)


2011 - Pivot to server version




2021 - Value stream management tools
Study
tool in


context
of use
Deploy


(open
source)
Deploy


(open &


closed
source)
Propose a tool
Study tool in


context of use
Deploy License
45
Iterate
Continual attention to context of use
Identify a problem
Consider usage
context
Build tool
Summary
Special thanks to…
ANNA MARIA EILERTSEN DR. MIK KERSTEN
Organizers of
Fantastic students too numerous to name
Wonderful colleagues at Tasktop


NSERC for the support to discover
We have given software developers


a lot of tools…
Attending to tool usefulness and
usability can help bridge the gap to
more use
We need to consider and study


more than the moment a tool is used
We need to study the contexts in which
the tool is used
Propose a tool
Deploy License
50
Iterate
Usage context is key
Identify a problem
Consider usage
context
Build tool
Study tool in


context of use
51
Lots of questions
to address
?
?
?
?
Can we de
fi
ne
and/or classify
usage contexts?
How can we make
tools
fi
t more
usage contexts?
What is the
“right” number
of tools?
Can we auto-
collect useful data
about usage
contexts?
Creating Usable and Useful
Software Tools
Usability + Usefulness Large-scale use
opportunity
requires
Understanding/study


of context of use
Impactful research


opportunities
@gail_murphy
53
References
[KZN12] Kim, M., Zimmermann, T. and N. Nagappan. A
fi
eld study of refactoring challenges and bene ts. In Proc. Of FSE, 2012, 50:1-50:11.
[L+15] Leppänen, M., Mäkinen, S., Lahtinen, S., Sievi-Korte, O., Tuovinen, A.-P. and Männistö, T. Refactoring-a-shot in the dark?
IEEE Software, 2015, 32(6): 62-70.


[MB08] Murphy-Hill, E. and Black, A. Breaking the barriers to successful refactoring: Observations and tools for extract method.
In Proc. of ICSE, 2008, 421-430.


[MPB09] Murphy-Hill, E., Parnin, C. and Black, A.P. How we refactor, and how we know it. In Proc. Of ICSE, 2009, 287-297.
[MPB12] Murphy-Hill, E., Parnin, C. and Black, A.P. How we refactor, and how we know it. IEEE TSE, 2012, 38(1): 5-18.
[SSS15] Sharma, T., Suryanarayana, G. And Samarthyam, G. Challenges to and solutions for refactoring adoption: An industrial
perspective. IEEE Software, 32(6): 44-51.


[STV16] Silva, D., Tsantalis, N. and Valente, M.T. Why we refactor? Confessions of GitHub contributors. In Proc. Of FSE, 2016, 858-870.
[V+12] Vakilian, M., Chen, N., Negara, S., Rajkumar, B.A., Bailey, B.P. and Johnson, R.E. Use, disuse and misuse of automated
refactorings. In Proc. Of ICSE, 2012, 233-243.




Eilertsen, A.M. and Murphy, G.C., JSEP 2021. A study of refactorings during software change tasks.


Eilertsen, A.M. and Murphy, G.C., SANER 2021. The usability (or not) of refactoring tools.


Eilertsen, A.M. and Murphy, G.C., ICSME NIER 2021. Stepwise refactoring tools.


Eilertsen, A.M. Improving the usability of refactoring tools for software change tasks. Ph.D. thesis, University of Bergen, to appear.


Griswold 1991. Program restructuring as an aid to software maintenance, Ph.D. thesis, University of Washington.

More Related Content

What's hot

Programmer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language InputProgrammer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesYasutaka Kamei
 
Open Engineering Framework
Open Engineering FrameworkOpen Engineering Framework
Open Engineering FrameworkJohn Vogel
 
Abb case study 1
Abb case study 1Abb case study 1
Abb case study 1apn18
 
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...Mahsa H. Sadi
 
Software Engineering Past Papers Notes
Software Engineering Past Papers Notes Software Engineering Past Papers Notes
Software Engineering Past Papers Notes MuhammadTalha436
 
International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)inventionjournals
 
Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...IJERA Editor
 
Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Saad, Ph.D (Health IT)
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtRungrojMaipradit1
 
Test-Driven Development in the Corporate Workplace
Test-Driven Development in the Corporate WorkplaceTest-Driven Development in the Corporate Workplace
Test-Driven Development in the Corporate WorkplaceAhmed Owian
 
Agile maintenance
Agile maintenanceAgile maintenance
Agile maintenancearalikatte
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingtuanvu8292
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyIJMER
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trendsVladimir Kotov
 
An Innovative Research on Software Development Life Cycle Model
An Innovative Research on Software Development Life Cycle ModelAn Innovative Research on Software Development Life Cycle Model
An Innovative Research on Software Development Life Cycle ModelSucharita Bansal
 

What's hot (20)

Programmer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language InputProgrammer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language Input
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
 
Open Engineering Framework
Open Engineering FrameworkOpen Engineering Framework
Open Engineering Framework
 
F0262036041
F0262036041F0262036041
F0262036041
 
Abb case study 1
Abb case study 1Abb case study 1
Abb case study 1
 
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...
Accommodating Openness Requirements in Software Platforms: A goal-Oriented Ap...
 
Software Engineering Past Papers Notes
Software Engineering Past Papers Notes Software Engineering Past Papers Notes
Software Engineering Past Papers Notes
 
International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)
 
Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...
 
Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Msr2021 tutorial-di penta
Msr2021 tutorial-di pentaMsr2021 tutorial-di penta
Msr2021 tutorial-di penta
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
Test-Driven Development in the Corporate Workplace
Test-Driven Development in the Corporate WorkplaceTest-Driven Development in the Corporate Workplace
Test-Driven Development in the Corporate Workplace
 
Agile maintenance
Agile maintenanceAgile maintenance
Agile maintenance
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available Methodology
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trends
 
Epics qt application peer reviews
Epics qt application peer reviewsEpics qt application peer reviews
Epics qt application peer reviews
 
An Innovative Research on Software Development Life Cycle Model
An Innovative Research on Software Development Life Cycle ModelAn Innovative Research on Software Development Life Cycle Model
An Innovative Research on Software Development Life Cycle Model
 

Similar to Icsme 2021-keynote-creating-usable-and-useful-software-tools

An Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsAn Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsIJERA Editor
 
A Survey of Software Reusability
A Survey of Software ReusabilityA Survey of Software Reusability
A Survey of Software ReusabilityIJERA Editor
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...IRJET Journal
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 
Effect of refactoring on software quality
Effect of refactoring on software qualityEffect of refactoring on software quality
Effect of refactoring on software qualitycsandit
 
Ko tse06-developers behaviour
Ko tse06-developers behaviourKo tse06-developers behaviour
Ko tse06-developers behaviourPtidejPoly
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.pptRvishnupriya2
 
A study of various viewpoints and aspects software quality perspective
A study of various viewpoints and aspects  software quality perspectiveA study of various viewpoints and aspects  software quality perspective
A study of various viewpoints and aspects software quality perspectiveeSAT Journals
 
THE USABILITY METRICS FOR USER EXPERIENCE
THE USABILITY METRICS FOR USER EXPERIENCETHE USABILITY METRICS FOR USER EXPERIENCE
THE USABILITY METRICS FOR USER EXPERIENCEvivatechijri
 
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...WCIT 2014
 
Running head M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docx
Running head  M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docxRunning head  M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docx
Running head M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docxjoellemurphey
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemseSAT Publishing House
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniquesijseajournal
 
A Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresA Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresTodd Turner
 

Similar to Icsme 2021-keynote-creating-usable-and-useful-software-tools (20)

An Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsAn Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using Metrics
 
D502023439
D502023439D502023439
D502023439
 
D502023439
D502023439D502023439
D502023439
 
A Survey of Software Reusability
A Survey of Software ReusabilityA Survey of Software Reusability
A Survey of Software Reusability
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
Effect of refactoring on software quality
Effect of refactoring on software qualityEffect of refactoring on software quality
Effect of refactoring on software quality
 
Ko tse06-developers behaviour
Ko tse06-developers behaviourKo tse06-developers behaviour
Ko tse06-developers behaviour
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
 
A study of various viewpoints and aspects software quality perspective
A study of various viewpoints and aspects  software quality perspectiveA study of various viewpoints and aspects  software quality perspective
A study of various viewpoints and aspects software quality perspective
 
THE USABILITY METRICS FOR USER EXPERIENCE
THE USABILITY METRICS FOR USER EXPERIENCETHE USABILITY METRICS FOR USER EXPERIENCE
THE USABILITY METRICS FOR USER EXPERIENCE
 
ppt chapter 1.ppt
ppt chapter 1.pptppt chapter 1.ppt
ppt chapter 1.ppt
 
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...
WCIT 2014 Peter Elkin - Human computer interaction, evaluation, usability tes...
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
195
195195
195
 
Running head M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docx
Running head  M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docxRunning head  M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docx
Running head M7A1 - PROJECT MANAGEMENT PLAN1M7A1 - PROJECT.docx
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systems
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniques
 
A Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresA Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality Measures
 

More from Gail Murphy

Architecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdfArchitecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdfGail Murphy
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Gail Murphy
 
Making Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsMaking Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsGail Murphy
 
The Need for Context in Software Engineering
The Need for Context in Software EngineeringThe Need for Context in Software Engineering
The Need for Context in Software EngineeringGail Murphy
 
Impactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsImpactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsGail Murphy
 
The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItGail Murphy
 
Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development ToolsGail Murphy
 
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Gail Murphy
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesGail Murphy
 
Software Supply Chains
Software Supply ChainsSoftware Supply Chains
Software Supply ChainsGail Murphy
 
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Gail Murphy
 
The Human Element
The Human ElementThe Human Element
The Human ElementGail Murphy
 
What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?Gail Murphy
 

More from Gail Murphy (13)

Architecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdfArchitecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdf
 
Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
 
Making Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsMaking Effective, Useful Software Development Tools
Making Effective, Useful Software Development Tools
 
The Need for Context in Software Engineering
The Need for Context in Software EngineeringThe Need for Context in Software Engineering
The Need for Context in Software Engineering
 
Impactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsImpactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'ts
 
The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find It
 
Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development Tools
 
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable?
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slides
 
Software Supply Chains
Software Supply ChainsSoftware Supply Chains
Software Supply Chains
 
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)
 
The Human Element
The Human ElementThe Human Element
The Human Element
 
What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
 

Recently uploaded

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 

Recently uploaded (20)

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 

Icsme 2021-keynote-creating-usable-and-useful-software-tools

  • 1. Creating 
 Usable and Useful Software Tools Gail C. Murphy University of British Columbia 
 
 @gail_murphy
  • 4. - X Too often a gap exists between developers’ needs and tools
  • 5. - X Attention to usability and usefulness can bridge the gap
  • 6. Where we will end up Usability + Usefulness Large-scale use opportunity requires Understanding/study of context of use Impactful research opportunities
  • 7. Identify a problem Propose a tool Consider usage context Build tool Study tool in 
 context of use Deploy License Iterate Roadmap
  • 8. Propose a tool Study tool in 
 context of use Deploy License Iterate Part 1: Case study of refactoring tools Based on the Ph.D. work of Anna Eilertsen Identify a problem Build tool Consider usage context
  • 9. Propose a tool Study tool in 
 context of use Deploy License 9 Iterate Part 2: Re fl ections on tool research & development Based on joint work with 
 Dr. Mik Kersten Identify a problem Consider usage context Build tool
  • 10. Part I: Case study of refactoring tools
  • 11. 11 Identify the problem (for refactoring) “Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. At times, then, it is worthwhile to manipulate the structure of a system to make changes easier. However, it is shown that manual restructuring is an error-prone and expensive activity.” W.G. Griswold 
 Program Restructuring as an Aid to Software Maintenance, 1991
  • 12. 12 Propose a tool (refactoring) Refactoring catalog 
 (Fowler) Refactoring tools available in IDEs 1992 1991 2000 Proof-of-concept tools 
 (Griswold, Opdyke, Brandt) Examples Rename method / class Extract class Change method signature Inline
  • 13. 13 Identify a problem Propose a tool Consider usage context Study tool in
  • 14. fi eld study of refactoring challenges and bene fi ts “Developers said they do 86% of refactoring manually” [MPB12] [KZN12] [SSS15] Challenges to and solutions for refactoring adoption “59% of the respondents were dissatis fi ed with the quality of available refactoring tools” [STV16] 55% of developers “answered that refactoring was performed manually without tool support” Why we refactor? Confessions of GitHub contributors
  • 15. [MPB12] [KZN12] [SSG15] [STV16] Refactoring tools are under-utilized 15
  • 16. 16 Awareness [MPB09, V+12, STV16] Inability to select code [MB08] Predictability [V+12] Trust [MBP09, L+15, STV16] And many other reasons… Why are refactoring tools under-utilized?
  • 17. Identify a problem Propose a tool Study tool in 
 context of use Deploy License Iterate Consider usage context Build tool
  • 19. 19 Furda meras Consider usage context… Can study tool invocation Can help improve usability e.g., [MB08] Modi fi cations may still limit overall use (and usefulness)
  • 20. 20 Furda meras Consider usage context… Need to study tool use in likely tasks Can lead to new requirements for tools Consider interaction of usability and usefulness
  • 21. 21 A study of refactorings during software change tasks Organize test methods 1 Removing redundant methods 2 Overloaded method reduction 3 Tasks [Eilertsen and Murphy, JSEP 2021] 15 male and 2 female Average 10 years of experience Participants System Replica of part of Apache Commons-Lang 78k lines of Java, 1335 JUnit tests
  • 22. A study of refactorings during software change tasks Organize test methods 1 Removing redundant methods 2 Overloaded method reduction 3 Tasks Applicable refactorings move-metho d extract-class inline-metho d safe-delet e inline-metho d remove-paramete r Observation and interviews, up to 1.5 hours 32 hours of video, transcribed to 13k words Method Data [Eilertsen and Murphy, JSEP 2021]
  • 23. 23 A study of refactorings during software change tasks VSC-diffs Investigate how code was changed and verify change structural-navigation Understand code and locate code that needs to change refactoring-tool Change code and organize change test-suite Understand code, understand impact of changes, verify a change is correct debug-tool Understand what code does text-search Find references, callers and declarations of methods and parameters compiler-output Errors and warnings used to navigate code, understand impact of changes and verify changes copy/cut/paste Used to edit code Tools used [Eilertsen and Murphy, JSEP 2021]
  • 24. 24 A study of refactorings during software change tasks Local Changes guided by local and immediate
 feedback, such as from the compiler Structure Changes guided by code structure, such as
 callers and references Execute Changes guided by executing the test suite Strategy [Eilertsen and Murphy, JSEP 2021]
  • 25. A study of refactorings during software change tasks Participants Tasks Local Structure Execute Strategies were distributed participants and tasks Individual participants sometimes used different strategies [Eilertsen and Murphy, JSEP 2021]
  • 26. A study of refactorings during software change tasks Refactoring tool use dropped off from considering the tool to actually using the tool [Eilertsen and Murphy, JSEP 2021]
  • 27. 27 A study of refactorings during software change tasks [Eilertsen and Murphy, JSEP 2021]
  • 28. 28 A study of refactorings during software change tasks [Eilertsen and Murphy, JSEP 2021]
  • 29. 29 Themes Dif fi culties controlling impact Loss of knowledge of code [Eilertsen and Murphy, JSEP 2021]
  • 30. 30 The extent to which a system, product or service can be used by speci fi ed users to achieve speci fi ed goals with e ff ectiveness, e ffi ciency and satisfaction in a speci fi ed context of use. Usability Software developers employ refactoring tools to help prepare or complete functional changes to a software system. Software developers seek these tools to be reasonable to locate and apply for a desired intent (e ff ective), reasonable in terms of time and e ff ort required to use the tool (e ffi cient), and to add value to the development process (satisfying). Proposal for refactoring tools: ISO 9241-11 [Eilertsen and Murphy, SANER 2021]
  • 31. 31 Analysis of study transcripts for usability [Eilertsen and Murphy, SANER 2021]
  • 32. 32 Analysis of study transcripts for usability Code Description E ff ective User experiences tool as successfully performing a desired result E ffi cient User experiences the tool as being fast or increasing productivity Satisfaction User experiences having their needs or wants met by the use of the tool Trust User experiences the tools as trustworthy, safe or reliable Predictable User understands up-front what will happen by using the tool or indicates lack of surprise when using tool [Eilertsen and Murphy, SANER 2021]
  • 33. 33 Analysis of study transcripts for usability Participants commented frequently on the predictability of refactoring tools [Eilertsen and Murphy, SANER 2021]
  • 34. 34 Considering a broader population Survey about tools using in change tasks 46 respondents 

  • 35. 35 Tool usability profiles Copy-Cut-Paste Textual Search Compiler Output Simple Refactoring Tools Developers do not think these tools need to be satisfying Simple refactoring tools (e.g., rename) should be satisfying, compiler should be trustworthy [Eilertsen Ph.D. Thesis, to appear]
  • 36. 36 Tool usability profiles Simple Refactoring Tools [Eilertsen Ph.D. Thesis, to appear] Complex Refactoring Tools Note scales are slightly different on the top plots
  • 37. 37 What did we learn about usefulness and usability of refactoring tools? Re fi ned Theory of Usability for Refactoring Tools Software developers employ refactoring tools to help prepare or complete functional changes to a software system. Software developers seek these tools to be reasonable to locate, and for the tools to help them assess the e ffi ciency of the tool, in terms of the costs and bene fi ts of the tool, before its use. To enable e ff ective use in multiple situations, software developers seek to guide how a tool changes the source code for a system; this ability to tailor how a tool works can improve the e ffi ciency of the tool for the developer. Software developers also seek refactoring tools to explain their impact to source code so that the software developer can understand the e ff ectiveness of the tool. Software developers also expect tools to communicate clearly and directly in terms that match how software developers perceive refactoring operations. These characteristics in a refactoring tool increase the satisfaction of the software developer using a refactoring tool. Controlling Impact Retaining Knowledge
  • 38. Identify a problem Propose a tool Study tool in 
 context of use Deploy License Iterate Consider usage context Build tool
  • 39. 39 Stepwise refactoring tools Designed with attention to 
 usability themes learned from usage of tools in context of tasks Assessed against common problems with existing tools from study of refactoring use Eilertsen & Murphy, ICSME NIER 2021
  • 40. Identify a problem Propose a tool Study tool in 
 context of use Deploy License 40 Iterate Consider usage context Build tool Opportunities to
 continue study of usage contexts and new tool design s in context of use
  • 41. Part 2: Re fl ections on tool research & development
  • 42. Propose a tool Study tool in 
 context of use Deploy License 42 Iterate Based on joint work with 
 Dr. Mik Kersten Identify a problem Consider usage context Build tool Case study of Mylar/Mylyn/Tasktop
  • 43. 43 Timeline MYLAR MYLYN TASKTOP Mylar - task-focused interface for Eclipse IDE 
 
 Mylyn - rename of Mylar Tasktop Technologies Inc. - created to commercialize task-focused interface 2004 - Mylar created & fi rst industrial trial 
 
 2005 - Mylar open-sourced & large fi eld 
 study 2007 - Mylar renamed Mylyn 
 
 2007 - Tasktop created: individual & enterprise 
 sales (developer version) 2011 - Pivot to server version 
 
 2021 - Value stream management tools
  • 44. 44 2004 - Mylar created & fi rst industrial trial 
 
 2005 - Mylar open-sourced & large fi eld 
 study 2007 - Mylar renamed Mylyn 
 
 2007 - Tasktop created: individual & enterprise 
 sales (developer version) 2011 - Pivot to server version 
 
 2021 - Value stream management tools Study tool in 
 context of use Deploy (open source) Deploy (open & closed source)
  • 45. Propose a tool Study tool in 
 context of use Deploy License 45 Iterate Continual attention to context of use Identify a problem Consider usage context Build tool
  • 47. Special thanks to… ANNA MARIA EILERTSEN DR. MIK KERSTEN Organizers of Fantastic students too numerous to name Wonderful colleagues at Tasktop NSERC for the support to discover
  • 48. We have given software developers 
 a lot of tools… Attending to tool usefulness and usability can help bridge the gap to more use
  • 49. We need to consider and study more than the moment a tool is used We need to study the contexts in which the tool is used
  • 50. Propose a tool Deploy License 50 Iterate Usage context is key Identify a problem Consider usage context Build tool Study tool in 
 context of use
  • 51. 51 Lots of questions to address ? ? ? ? Can we de fi ne and/or classify usage contexts? How can we make tools fi t more usage contexts? What is the “right” number of tools? Can we auto- collect useful data about usage contexts?
  • 52. Creating Usable and Useful Software Tools Usability + Usefulness Large-scale use opportunity requires Understanding/study of context of use Impactful research opportunities @gail_murphy
  • 53. 53 References [KZN12] Kim, M., Zimmermann, T. and N. Nagappan. A fi eld study of refactoring challenges and bene ts. In Proc. Of FSE, 2012, 50:1-50:11. [L+15] Leppänen, M., Mäkinen, S., Lahtinen, S., Sievi-Korte, O., Tuovinen, A.-P. and Männistö, T. Refactoring-a-shot in the dark? IEEE Software, 2015, 32(6): 62-70. [MB08] Murphy-Hill, E. and Black, A. Breaking the barriers to successful refactoring: Observations and tools for extract method. In Proc. of ICSE, 2008, 421-430. [MPB09] Murphy-Hill, E., Parnin, C. and Black, A.P. How we refactor, and how we know it. In Proc. Of ICSE, 2009, 287-297. [MPB12] Murphy-Hill, E., Parnin, C. and Black, A.P. How we refactor, and how we know it. IEEE TSE, 2012, 38(1): 5-18. [SSS15] Sharma, T., Suryanarayana, G. And Samarthyam, G. Challenges to and solutions for refactoring adoption: An industrial perspective. IEEE Software, 32(6): 44-51. [STV16] Silva, D., Tsantalis, N. and Valente, M.T. Why we refactor? Confessions of GitHub contributors. In Proc. Of FSE, 2016, 858-870. [V+12] Vakilian, M., Chen, N., Negara, S., Rajkumar, B.A., Bailey, B.P. and Johnson, R.E. Use, disuse and misuse of automated refactorings. In Proc. Of ICSE, 2012, 233-243. 
 Eilertsen, A.M. and Murphy, G.C., JSEP 2021. A study of refactorings during software change tasks. 
 Eilertsen, A.M. and Murphy, G.C., SANER 2021. The usability (or not) of refactoring tools. 
 Eilertsen, A.M. and Murphy, G.C., ICSME NIER 2021. Stepwise refactoring tools. 
 Eilertsen, A.M. Improving the usability of refactoring tools for software change tasks. Ph.D. thesis, University of Bergen, to appear. 
 Griswold 1991. Program restructuring as an aid to software maintenance, Ph.D. thesis, University of Washington.