Refactoring software can be hard and time-consuming. Several refactoring tools assist developers in reaching more readable and maintainable code. However, most of them are characterized by long feedback loops that imp...
详细信息
ISBN:
(纸本)9781450394758
Refactoring software can be hard and time-consuming. Several refactoring tools assist developers in reaching more readable and maintainable code. However, most of them are characterized by long feedback loops that impoverish their refactoring experience. We believe that we can reduce this problem by focusing on the concept of Live Refactoring and its main principles: the live recommendation and continuous visualization of refactoring candidates, and the immediate visualization of results from applying a refactoring to the code. Therefore, we implemented a Live Refactoring Environment that identifies, suggests, and applies Extract Method refactorings. To evaluate our approach, we carried out an empirical experiment. Early results showed us that our refactoring environment improves several code quality aspects, being well received, understood, and used by the experiment participants. The source code of our tool is available on: https://***/saracouto1318/LiveRef. Its demonstration video can be found at: https://***/_jxx21ZiQ0o.
visualization techniques have been widely used in representing software artifacts. They play a central role in conveying program information to software developers. While numerous tools have been developed to visualiz...
详细信息
ISBN:
(纸本)9780769537580
visualization techniques have been widely used in representing software artifacts. They play a central role in conveying program information to software developers. While numerous tools have been developed to visualize information such as static software architectures, dynamic program behaviors,and debugging processes, little attention has been paid to visualizing correlations and variations among program representations. This paper investigates the visualization of cross-references across multiple program executions based upon different testing inputs so that meaningful and viewable properties can be presented to the viewpoint from different perspectives. Visualizing such a comparison can help feature location and program behavior verification. It also helps programmers better understand and test their software which can have a significant impact on improving its reliability.
software debugging is an extremely difficult cognitive process requiring comprehension of overall application behavior along with detailed understanding of specific application components. Typical debuggers provide in...
详细信息
ISBN:
(纸本)9781581136425
software debugging is an extremely difficult cognitive process requiring comprehension of overall application behavior along with detailed understanding of specific application components. Typical debuggers provide inadequate support for this process, focusing primarily on the details accessible through source code. To overcome this deficiency, we link dynamic program execution state to a Unified Modeling Language (UML) object diagram. We enhance the standard UML diagram with focus + context, graph layout, and color encoding techniques that organize and present objects and events in a manner that facilitates analysis of system behavior. We support debugging using high level abstractions commonly used in system design, while maintaining access to low level details with an interactive display.
Student failure and commonly expressed difficulties in programming disciplines suggest that traditional approaches are not the most appropriate for many students. In this paper we present SICAS, a learning tool design...
详细信息
ISBN:
(纸本)9789549641387
Student failure and commonly expressed difficulties in programming disciplines suggest that traditional approaches are not the most appropriate for many students. In this paper we present SICAS, a learning tool designed to help students in the development of basic algorithmic and programming skills. With SICAS students can design, simulate, test and compare algorithms for proposed problems. We also report some evaluation findings, current changes and future extensions of the tool.
Refactoring code manually can be complex. Several refactoring tools were developed to mitigate the effort needed to create more readable, adaptable, and maintainable code. However, most of them continue to provide lat...
详细信息
ISBN:
(纸本)9781450394758
Refactoring code manually can be complex. Several refactoring tools were developed to mitigate the effort needed to create more readable, adaptable, and maintainable code. However, most of them continue to provide late feedback, assistance, and support on how developers should improve their software. That’s where the concept of Live Refactoring comes in. We believe the immediate and continuous suggestion of refactoring candidates to the code will help reduce this problem. Therefore, we prototyped a Live Refactoring Environment that identifies, recommends, and applies Extract Method refactorings. We carried out an empirical experiment that showed us that our approach helped developers reach better code, with more quality, improving their refactoring experience.
A large body of research is available on software clustering, and many tools have been developed to comprehend large software systems. However, little attention has been paid to the area of visual clustering. In this ...
详细信息
ISBN:
(纸本)9781509054442
A large body of research is available on software clustering, and many tools have been developed to comprehend large software systems. However, little attention has been paid to the area of visual clustering. In this paper, we leverage clustering-based visualization to explore static dependencies present in the code base. This paper describes SDVisu, a tool for clustering-based visual exploration of static dependencies. We discuss the key features of SDVisu and improvements for future work.
When developing object-oriented classes, it is difficult to determine how to best reallocate the members of large, complex classes to create smaller, more cohesive ones. Clustering techniques can provide guidance on h...
详细信息
ISBN:
(纸本)9781920682934
When developing object-oriented classes, it is difficult to determine how to best reallocate the members of large, complex classes to create smaller, more cohesive ones. Clustering techniques can provide guidance on how to solve this allocation problem; however, inappropriate use of clustering can result in a class structure that is less maintainable than the original. The ExtC Visualizer helps the programmer understand the class structure by visually emphasizing important features of the class's members and their interrelationships. More importantly, it helps users see how various clustering algorithms group the class's members. These insights help a programmer choose appropriate techniques for refactoring large classes.
Introduction: Given that the nanoscale regime has been reached, atomistic simulations are being used as predictive tools on a nanoscopic scale in nanoelectronics, materials science, and computational fluid dynamics. T...
详细信息
Introduction: Given that the nanoscale regime has been reached, atomistic simulations are being used as predictive tools on a nanoscopic scale in nanoelectronics, materials science, and computational fluid dynamics. These simulations are generally supported by complex and specific simulation engines that require a deep knowledge of the engine as well as the field. The inputs required by these engines are usually described in long-text files, and their composition is error prone. These files contain details about the corresponding materials, geometries, algorithms, initial values, etc. The introduction of visualizations to the simulation creation process could alleviate some common user issues with simulation creation, in particular regarding the input-text files. In other fields, visual analytics have been used to facilitate user interaction with complex data. This work features a case study on the creation of a nanoelectronic device simulation and provides evidence of how the use of visual analytics reduces the cognitive complexity of defining an atomistic simulation. Case description: NEMO5 is a tool designed to simulate the electronic properties of nanoelectronic devices on an atomistic level. In this work we introduce NemoViz, an interactive visualization tool that enables users to define the simulation inputs required by NEMO5. Regular NEMO5 users were exposed to NemoViz, and users’ effectiveness and efficiency was measured while debugging the input for a simulation. Discussion and Evaluation: The results of this work show that NemoViz reduced the time that users spent defining the inputs of a NEMO5 simulation. When using NemoViz, Expert NEMO5 users detected errors twice as fast as when NemoViz was not used, and non-expert NEMO5 users were able to detect errors as effectively and efficiently as expert users. Conclusions: These results suggest that the use of visual analytics as a simulation design process tool reduces the cognitive load of complex simulators su
暂无评论