Search For:

Displaying 1-28 out of 28 total
The Future of Social Learning in Software Engineering
Found in: Computer
By Emerson Murphy-Hill
Issue Date:January 2014
pp. 48-54
Building on time-honored strengths of person-to-person social learning, new technologies can help software developers learn from one another more efficiently and productively. In particular, continuous social screencasting is a promising technique for shar...
 
Refactoring Tools: Fitness for Purpose
Found in: IEEE Software
By Emerson Murphy-Hill,Andrew P. Black
Issue Date:September 2008
pp. 38-44
Refactoring tools can improve the speed and accuracy with which developers create and maintain software—but only if they are used. In practice, tools are not used as much as they could be; this seems to be because sometimes they do not align with the refac...
 
A degree-of-knowledge model to capture source code familiarity
Found in: Software Engineering, International Conference on
By Thomas Fritz,Jingwen Ou,Gail C. Murphy,Emerson Murphy-Hill
Issue Date:May 2010
pp. 385-394
The size and high rate of change of source code comprising a software system make it difficult for software developers to keep up with who on the team knows about particular parts of the code. Existing approaches to this problem are based solely on authors...
 
How we refactor, and how we know it
Found in: Software Engineering, International Conference on
By Emerson Murphy-Hill, Chris Parnin, Andrew P. Black
Issue Date:May 2009
pp. 287-297
Much of what we know about how programmers refactor in the wild is based on studies that examine just a few software projects. Researchers have rarely taken the time to replicate these studies in other contexts or to examine the assumptions on which they a...
 
Programmer-Friendly Refactoring Errors
Found in: IEEE Transactions on Software Engineering
By Emerson Murphy-Hill,Andrew P. Black
Issue Date:November 2012
pp. 1417-1431
Refactoring tools, common to many integrated development environments, can help programmers to restructure their code. These tools sometimes refuse to restructure the programmer's code, instead giving the programmer a textual error message that she must de...
 
Code Hot Spot: A tool for extraction and analysis of code change history
Found in: Software Maintenance, IEEE International Conference on
By Will Snipes,Brian Robinson,Emerson Murphy-Hill
Issue Date:September 2011
pp. 392-401
Commercial software development teams have limited time available to focus on improvements to their software. These teams need a way to quickly identify areas of the source code that would benefit from improvement, as well as quantifiable data to defend th...
 
The Design Space of Bug Fixes and How Developers Navigate It
Found in: IEEE Transactions on Software Engineering
By Emerson Murphy-Hill,Thomas Zimmermann,Christian Bird,Nachiappan Nagappan
Issue Date:February 2015
pp. 1
When software engineers fix bugs, they may have several options as to how to fix those bugs. Which fix they choose has many implications, both for practitioners and researchers: What is the risk of introducing other bugs during the fix? Is the bug fix in t...
 
American and Indian Conceptualizations of Phishing
Found in: 2013 3rd International Workshop on Socio-Technical Aspects in Security and Trust (STAST)
By Rucha Tembe,Kyung Wha Hong,Emerson Murphy-Hill,Christopher B. Mayhorn,Christopher M. Kelley
Issue Date:June 2013
pp. 37-45
Using Amazon's Mechanical Turk, fifty American and sixty-one Indian participants completed a survey that assessed characteristics of phishing attacks, asked participants to describe their previous phishing experiences, and report phishing consequences. The...
 
Is programming knowledge related to age? An exploration of stack overflow
Found in: 2013 10th IEEE Working Conference on Mining Software Repositories (MSR 2013)
By Patrick Morrison,Emerson Murphy-Hill
Issue Date:May 2013
pp. 69-72
Becoming an expert at programming is thought to take an estimated 10,000 hours of deliberate practice. But what happens after that? Do programming experts continue to develop, do they plateau, or is there a decline at some point? A diversity of opinion exi...
   
How We Refactor, and How We Know It
Found in: IEEE Transactions on Software Engineering
By Emerson Murphy-Hill,Chris Parnin,Andrew P. Black
Publication Date: April 2011
pp. N/A
Refactoring is widely practiced by developers, and considerable research and development effort has been invested in refactoring tools. However, little has been reported about the adoption of refactoring tools, and many assumptions about refactoring practi...
 
Breaking the barriers to successful refactoring
Found in: Software Engineering, International Conference on
By Emerson Murphy-Hill, Andrew Black
Issue Date:May 2008
pp. 421-430
Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with tools, which should make it easier for programmers to refactor quickly and correctly. However, we have observed that many too...
 
Degree-of-knowledge: Modeling a developer's knowledge of code
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Emerson Murphy-Hill, Emily Hill, Gail C. Murphy, Jingwen Ou, Thomas Fritz
Issue Date:March 2014
pp. 1-42
As a software system evolves, the system's codebase constantly changes, making it difficult for developers to answer such questions as who is knowledgeable about particular parts of the code or who needs to know about changes made. In this article, we show...
     
Improving software developers' fluency by recommending development environment commands
Found in: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE '12)
By Emerson Murphy-Hill, Gail C. Murphy, Rahul Jiresal
Issue Date:November 2012
pp. 1-11
Software developers interact with the development environments they use by issuing commands that execute various programming tools, from source code formatters to build tools. However, developers often only use a small subset of the commands offered by mod...
     
Peer interaction effectively, yet infrequently, enables programmers to discover new tools
Found in: Proceedings of the ACM 2011 conference on Computer supported cooperative work (CSCW '11)
By Emerson Murphy-Hill, Gail C. Murphy
Issue Date:March 2011
pp. 405-414
Computer users rely on software tools to work effectively and efficiently, but it is difficult for users to be aware of all the tools that might be useful to them. While there are several potential technical solutions to this difficulty, we know little abo...
     
Understanding context: creating a lasting impact in experimental software engineering research
Found in: Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10)
By Emerson Murphy-Hill, Gail C. Murphy, William G. Griswold
Issue Date:November 2010
pp. 255-258
Software is developed for and in a vast number of contexts. Some software systems are small in size; some large. Some systems are developed by small teams; some large. Some projects are sensitive to schedule, others to safety of the users. In this position...
     
What is trust in a recommender for software development?
Found in: Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering (RSSE '10)
By Emerson Murphy-Hill, Gail C. Murphy
Issue Date:May 2010
pp. 57-58
Many recommendation systems have been built to aid software developers. Few have been evaluated using human-based evaluation strategies. In studying situations where recommendation systems have been used or might be used, we have observed that issues relat...
     
Social influences on secure development tool adoption: why security tools spread
Found in: Proceedings of the 17th ACM conference on Computer supported cooperative work & social computing (CSCW '14)
By Emerson Murphy-Hill, Jim Witschey, Shundan Xiao
Issue Date:February 2014
pp. 1095-1106
Security tools can help developers build more secure software systems by helping developers detect or fix security vulnerabilities in source code. However, developers do not always use these tools. In this paper, we investigate a number of social factors t...
     
Evaluation and usability of programming languages and tools (PLATEAU)
Found in: Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity (SPLASH '12)
By Caitlin Sadowski, Emerson Murphy-Hill, Shane Markstrum
Issue Date:October 2012
pp. 219-220
Programming languages exist to enable programmers to develop software effectively. But how efficiently programmers can write software depends on the usability of the languages and tools that they develop with. The aim of this workshop is to discuss methods...
     
Java generics adoption: how new features are introduced, championed, or ignored
Found in: Proceeding of the 8th working conference on Mining software repositories (MSR '11)
By Chris Parnin, Christian Bird, Emerson Murphy-Hill
Issue Date:May 2011
pp. 3-12
Support for generic programming was added to the Java language in 2004, representing perhaps the most significant change to one of the most widely used programming languages today. Researchers and language designers anticipated this addition would relieve ...
     
Evaluation and usability of programming languages and tools (PLATEAU)
Found in: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion (SPLASH '10)
By Craig Anslow, Emerson Murphy-Hill, Shane Markstrum
Issue Date:October 2010
pp. 265-266
Programming languages exist to enable programmers to develop software effectively. But how efficiently programmers can write software depends on the usability of the languages and tools that they develop with. The aim of this workshop is to discuss methods...
     
Evaluation and usability of programming languages and tools (plateau)
Found in: Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications (OOPSLA '09)
By Craig Anslow, Emerson Murphy-Hill, Shane Markstrum
Issue Date:October 2009
pp. 1053-1054
Programming languages exist to enable programmers to develop software effectively. But how efficiently programmers can write software depends on the usability of the languages and tools that they develop with. The aim of this workshop is to discuss methods...
     
Seven habits of a highly effective smell detector
Found in: Proceedings of the 2008 international workshop on Recommendation systems for software engineering (RSSE '08)
By Andrew P. Black, Emerson Murphy-Hill
Issue Date:November 2008
pp. 1-2
The process of refactoring code---changing its structure while preserving its meaning---has been identified as an important way of maintaining code quality over time. However, it is sometimes difficult for progammers to identify which pieces of code are in...
     
Gathering refactoring data: a comparison of four methods
Found in: Proceedings of the 2nd Workshop on Refactoring Tools (WRT '08)
By Andrew P. Black, Chris Parnin, Danny Dig, Emerson Murphy-Hill
Issue Date:October 2008
pp. 1-5
Those of us who seek to build better refactoring tools need empirical data collected from real refactoring sessions. The literature reports on different methods for capturing this data, but little is known about how the method of data capture affects the q...
     
Scalable, expressive, and context-sensitive code smell display
Found in: Companion to the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications (OOPSLA Companion '08)
By Emerson Murphy-Hill
Issue Date:October 2008
pp. 186-189
Code smell detectors can potentially help programmers identify opportunities to improve the design of software through refactoring. Unfortunately, the user interfaces to existing detectors often do not align with how programmers typically refactor. I argue...
     
Breaking the barriers to successful refactoring: observations and tools for extract method
Found in: Proceedings of the 13th international conference on Software engineering (ICSE '08)
By Andrew P. Black, Emerson Murphy-Hill
Issue Date:May 2008
pp. 1-1
Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with tools, which should make it easier for programmers to refactor quickly and correctly. However, we have observed that many too...
     
Activating refactorings faster
Found in: Companion to the 22nd ACM SIGPLAN conference on Object oriented programming systems and applications companion (OOPSLA '07)
By Emerson Murphy-Hill
Issue Date:October 2007
pp. 925-926
Refactoring tools promise to increase the speed at which programmers write code, but programmers report that contemporary tools sometimes slow them down. Some of that slowdown can be attributed to the time it takes to activate refactoring tools, typically ...
     
Improving usability of refactoring tools
Found in: Companion to the 21st ACM SIGPLAN conference on Object-oriented programming languages, systems, and applications (OOPSLA '06)
By Emerson Murphy-Hill
Issue Date:October 2006
pp. 746-747
While the integration of refactoring tools into many development environments has increased, the usability of these tools has remained stagnant. Specifically, when refactorings fail, tools communicate the failure to the programmer poorly, causing the progr...
     
Tools for a successful refactoring
Found in: Companion to the 21st ACM SIGPLAN conference on Object-oriented programming languages, systems, and applications (OOPSLA '06)
By Andrew P. Black, Emerson Murphy-Hill
Issue Date:October 2006
pp. 694-695
Although refactoring tools have been integrated into numerous development environments over the past ten years, we have seen little variation in the human interfaces to refactoring tools -- when a refactoring fails, most tools present a textual error messa...
     
 1