refactoring tools
Recently Published Documents


TOTAL DOCUMENTS

42
(FIVE YEARS 9)

H-INDEX

8
(FIVE YEARS 0)

2021 ◽  
Author(s):  
◽  
Keith Cassell

<p>Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development.</p>


2021 ◽  
Author(s):  
◽  
Keith Cassell

<p>Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development.</p>


Author(s):  
Helge Pfeiffer ◽  
Anna Maria Eilertsen ◽  
Murphy Gail C.
Keyword(s):  

2021 ◽  
Author(s):  
Anna Maria Eilertsen ◽  
Gail C. Murphy
Keyword(s):  

Author(s):  
Abdullah Mahmoud Almasri ◽  
Luis Borges Gouveia

The tremendous increase in smartphone usage is accompanied by an increase in the need for more energy. This preoperational relationship between modern technology and energy generates energy-greedy apps, and therefore power-hungry end users. With many apps falling under the same category in an app store, these apps usually share similar functionality. Because developers follow different design and development schools, each app has its energy-consumption habits. Since apps share similar features, an end-user with limited access to recharging resources would prefer an energy-friendly app rather than a popular energy-greedy app. However, app stores do not indicate the energy behavior of the apps they offer, which causes users to randomly choose apps without understanding their energy-consumption behavior. A review of the relevant literature was provided covering various energy-saving techniques. The results gave an initial impression about the popularity of the usage of two power-saving modes where the average usage of these modes did not exceed 31% among the total 443 Android users. To address this issue, we propose a star-rating evaluation model (SREM), an approach that generates a tentative energy rating label for each app. The model was tested on 7 open-source apps to act as a primary evaluation sample. To that end, SREM adapts current energy-aware refactoring tools to demonstrate the level of energy consumption of an app and presents it in a star-rating schema similar to the Ecolabels used on electrical home appliances. As per our results, SREM helped in saving 35% of smartphone energy.


Author(s):  
Abderraouf Gattal ◽  
Abir Hammache ◽  
Nabila Bousbia ◽  
Adel Nassim Henniche

2020 ◽  
pp. 25-40

Synthetic biology (SynBio) is a very vast field of research that produces new biological parts, appliances, and systems. It is the application of engineering principles to design and construct new bio-based biologicals, devices and systems that exhibit functions not present in nature or to redesign the existing systems to perform specific tasks. Synthetic biology varies from other disciplines including system biology, biotechnology and genetic engineering. For instance, while system biology focuses on obtaining a quantitative understanding of the naturally existing biology systems, the synthetic biology focuses on engineering, designing, and synthesis of new novel biological functions utilizing the biological information drawn from systems biology analysis. SB utilizes computer algorithms to alter genetic sequence before synthesizing them in the laboratory. Moreover, SB employed gene shuffling and refactoring tools that may alter thousands of genetic elements of an organism at once. In the present article, we aim to discuss the basic approaches of synthetic biology. Furthermore, the application of synthetic biology on biomedical science, drug discovery development, bioenergy and agriculture will also be discussed. Finally the challenges facing the researchers in the field of synthetic biology such as those technical, ethical and safety will be also highlighted.


2020 ◽  
Author(s):  
Gustavo Soares ◽  
Rohit Gheyi

Refactoring is a transformation that preserves the external behavior of a program and improves its internal quality. To help developers in this task, current IDEs, such as Eclipse and NetBeans, automate a number of refactorings. However, implementing refactorings is a complex task, and so, even mainstream IDEs contain critical bugs. We propose an automated approach for testing of Java refactoring engines. Its key components are: JDOLLY, a Java program generator, and SAFEREFACTOR, a program for checking behavioral changes. The technique uses JDOLLY to generate programs as test inputs. For each generated program, it applies the refactoring by using the engine under test, and uses oracles based on SAFEREFACTOR to evaluate the correctness of the transformation. In the end, it classifies the failures into distinct bugs. We have evaluated this technique by testing up to 10 refactorings from Eclipse, NetBeans and the JastAdd Refactoring Tools. Our technique tested 153,444 transformations, and identified more than 100 bugs, which were reported to engines’ developers. They accepted most of them, and already fixed 35 bugs.


Author(s):  
Javier García-Blas ◽  
Christopher Brown

High-Level Heterogeneous and Hierarchical Parallel Systems (HLPGPU) aims to bring together researchers and practitioners to present new results and ongoing work on those aspects of high-level programming relevant, or specific to general-purpose computing on graphics processing units (GPGPUs) and new architectures. The 2016 HLPGPU symposium was an event co-located with the HiPEAC conference in Prague, Czech Republic. HLPGPU is targeted at high-level parallel techniques, including programming models, libraries and languages, algorithmic skeletons, refactoring tools and techniques for parallel patterns, tools and systems to aid parallel programming, heterogeneous computing, timing analysis and statistical performance models.


Sign in / Sign up

Export Citation Format

Share Document