Results 1 - 10
of
12
Breaking the barriers to successful refactoring: observations and tools for extract method
- In ICSE ’08: Proceedings of the 30th International Conference on Software Engineering
, 2008
"... 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 tools do a poor job of communicating errors tri ..."
Abstract
-
Cited by 14 (8 self)
- Add to MetaCart
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 tools do a poor job of communicating errors triggered by the refactoring process and that programmers using them sometimes refactor slowly, conservatively, and incorrectly. In this paper we characterize problems with current refactoring tools, demonstrate three new tools to assist in refactoring, and report on a user study that compares these new tools against existing tools. The results of the study show that speed, accuracy, and user satisfaction can be significantly increased. From the new tools we induce a set of usability recommendations that we hope will help inspire a new generation of programmer-friendly refactoring tools.
Improving Refactoring with Alternate Program Views. Research Proficiency Exam
, 2006
"... Abstract. Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with the help of tools, but many existing tools do a poor job of communicating errors triggered by the programmer. This poor communication causes programmers to ref ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
Abstract. Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with the help of tools, but many existing tools do a poor job of communicating errors triggered by the programmer. This poor communication causes programmers to refactor slowly, conservatively, and incorrectly. In this paper, I demonstrate the problems with current refactoring tools, characterize three new alternative program views to assist in refactoring, and describe a user study that compares these new views against existing tools. The results of the study show that both the speed and accuracy of refactoring can be increased using these new views. The new views exhibit several desirable properties for future refactoring tools. 1
Remixing visualization to support collaboration in software maintenance
- In Proceedings of the Frontiers of Software Maintenance (FoSM). IEEE
, 2008
"... We propose that collaborative software visualization can improve team software maintenance. We first review how visualization can support software maintenance from the perspectives of system understanding, process understanding and software evolution. From this, we conclude that visualization tools ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We propose that collaborative software visualization can improve team software maintenance. We first review how visualization can support software maintenance from the perspectives of system understanding, process understanding and software evolution. From this, we conclude that visualization tools are rarely designed to provide explicit support for collaborative authoring and sharing of views. We then provide an overview of research from a Computer Supported Cooperative Work perspective, and propose that this research should be applied to software visualization. We explore the opportunities and challenges this research focus presents and conclude that more attention paid to the social aspects of software visualization should improve both individual and team processes in software maintenance. 1.
Do visualizations improve synchronous remote collaboration
- Proc. CHI 2008. NY: ACM
, 2008
"... Information visualizations can improve collaborative problem solving, but this improvement may depend on whether visualizations promote communication. In an experiment on the effect of network visualizations, remote pairs worked synchronously to identify a serial killer. They discussed disparate evi ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Information visualizations can improve collaborative problem solving, but this improvement may depend on whether visualizations promote communication. In an experiment on the effect of network visualizations, remote pairs worked synchronously to identify a serial killer. They discussed disparate evidence distributed across the pair using IM. Four conditions, respectively, offered (a) spreadsheet only (controls), (b) individual unshared visualizations, (c) view-only shared visualizations, and (d) a full-access shared visualization of all evidence. We examined collaborative performance, use of the visualization tool, and communication as a function of condition. All visualization conditions improved remote collaborators ’ performance over the control condition. Full access to a shared visualization best facilitated remote collaboration by encouraging tool use and fostering discussion between the partners. Shared visualization without full access impaired performance somewhat and made communication even more vital to identifying the serial killer. This study provides direct evidence of visualization tool features and partner behavior that promote collaboration.
Supporting the evolution of a software visualization tool through usability studies
- in Proceedings International Workshop on Program Comprehension
, 1997
"... The paper presents a usability study conducted with graduate and undergraduate computer science students, designed to evaluate the effectiveness of a software visualization tool named sv3D, and to provide necessary user data for the evolution of the system. Sv3D is a software visualization tool for ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
The paper presents a usability study conducted with graduate and undergraduate computer science students, designed to evaluate the effectiveness of a software visualization tool named sv3D, and to provide necessary user data for the evolution of the system. Sv3D is a software visualization tool for comprehension of large software, capable of displaying source code and associated metrics in three dimensions. The participants in the study answered two types of questions: one set provided objective measurements to support the formulated hypotheses with respect to the accuracy and speed of the users answering questions using sv3D; the second set of questions provided subjective measurements that were used to support the evolution of sv3D. We formulated two null hypotheses with respect to accuracy and time respectively. The collected data supported one hypothesis and rejected the other. 1.
Iterative Cycle for Teaching Object Oriented Concepts: From Abstract Thinking to Specific Language Implementation
"... Abstract thinking is a vital skill when learning computer science related issues. Object Technology and the concepts it's based upon make this skill even more crucial. However, previous research works show that both students in top universities, as well as experienced practitioners in industry, enco ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Abstract thinking is a vital skill when learning computer science related issues. Object Technology and the concepts it's based upon make this skill even more crucial. However, previous research works show that both students in top universities, as well as experienced practitioners in industry, encounter difficulties in thinking in abstract terms while practicing object oriented development. This vision paper suggests an iterative teaching approach to understanding of the basic concepts of OO paradigm. The suggested iterative approach is based, among other things, on familiarizing modeling languages and tools to students at the most early stages of OO learning. In the space available we present this iterative teaching approach and examine the contribution and support of modeling languages, in particular UML, to abstract thinking and, consequently, to the understanding of basic OO concepts.
Breaking the barriers to successful refactoring
- In Proceedings, International Conference on Software Engineering. IEEE Computer Society
, 2008
"... Refactoring, the process of changing the structure of code without changing its behavior, can be semi-automated with the help of tools. However, many tools do a poor job of communicating errors triggered by the refactoring process. This poor communication causes programmers to refactor slowly, conse ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Refactoring, the process of changing the structure of code without changing its behavior, can be semi-automated with the help of tools. However, many tools do a poor job of communicating errors triggered by the refactoring process. This poor communication causes programmers to refactor slowly, conservatively, and incorrectly. In this paper we demonstrate problems with current refactoring tools, characterize three new tools to assist in refactoring, and describe a user study that compares these new tools against existing tools. The results of the study show that the speed, accuracy, and user satisfaction can be significantly increased The new tools have inspired a set of usability recommendations that we hope will help build a new generation of programmer-friendly refactoring tools.
An Iterative Methodology for Teaching Object Oriented Concepts
, 2006
"... Abstract. Abstract thinking is a vital skill when learning computer science. Object technology and the concepts it is based upon make this skill even more crucial. However, previous research works show that students in top universities as well as experienced practitioners in industry encounter diffi ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Abstract thinking is a vital skill when learning computer science. Object technology and the concepts it is based upon make this skill even more crucial. However, previous research works show that students in top universities as well as experienced practitioners in industry encounter difficulties in thinking in abstract terms while practicing object oriented development. In this paper we suggest an iterative teaching methodology for supporting students in learning object oriented concepts. The suggested methodology is based on familiarizing students with modeling languages and tools at the early stages of their learning and iterating between model and code. We theoretically examine the contribution of modeling languages, in particular UML, to abstract thinking and consequently to the understanding of object oriented concepts and present some observations acquired during a trial execution of this methodology in a university course. Key words: teaching object oriented, abstraction, visual models. 1.
Teaching and Learning Computing
"... This literature review focuses on cognitive aspects of teaching and learning Computer Science. In order to limit the scope of this research the report does not address assessment, gender, media, collaborative or affective aspects of Computer Science Education to any significant extent. As well, soft ..."
Abstract
- Add to MetaCart
This literature review focuses on cognitive aspects of teaching and learning Computer Science. In order to limit the scope of this research the report does not address assessment, gender, media, collaborative or affective aspects of Computer Science Education to any significant extent. As well, softer skills such as IT management,
Sensemaking with Shared Visualizations: Investigating the Effects of Visualizations in Remote Collaborative Analysis
, 2011
"... findings, conclusions, or recommendations expressed in this material are those of the author and do not necessarily ..."
Abstract
- Add to MetaCart
findings, conclusions, or recommendations expressed in this material are those of the author and do not necessarily

