Refactoring
92 Followers
Recent papers in Refactoring
Binary component-based software updates that are efficient, safe and generic still remain a challenge. Most existing deployment systems that achieve this goal have to control the complete software environment of the user which is a... more
Safety critical software requires integrating verification techniques in software development methods. Software architectures must guarantee that developed systems will meet safety requirements and safety analyses are frequently used in... more
Recent versions of the Java standard library offer flexible locking constructs that go beyond the language's built-in monitor locks in terms of features, and that can be fine-tuned to suit specific application scenarios. Under certain... more
Software module clustering is the process of automatically partitioning the structure of the system using low-level dependencies in the source code, to improve the system's structure. There have been a large number of studies using the... more
Software maintainability is one of the most important aspects while evaluating quality of the software product. It is defined as the ease with which a software system or component can be modified to correct faults, improve performance or... more
Refactoring is a useful practice in developing and maintaining software since it improves the design of existing code without changing its external behavior. Therefore, contemporary integrated development environments tend to include... more
8th International Conference on Software Engineering (SOFT 2022) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Software Engineering and Applications. The goal of... more
We present a novel approach to the analysis of dependency graphs of object-oriented programs. We propose to use the Girvan-Newman clustering algorithm to compute the modular structure of programs. This is useful in assisting software... more
This paper presents application of a fuzzy logic based system to automatically evaluate the maintainability of code. Code evaluation is accomplished by rating its quality provided with bad smells in code as inputs. Straightforward bad... more
Software development is a mentally complicated task. Different software development methodologies and quality assurance methods are used in order to attain high quality, reliable, and bug free software. eXtreme Programming (XP) is a... more
Manter e adaptar código mal escrito, com problemas estruturais, é uma tarefa difícil. As técnicas de refatoração são usadas para melhorar o código e a estrutura de aplicações, aumentando sua qualidade e tornando-as mais fáceis de serem... more
A Coding Dojo is a meeting where a group of programmers gets together to learn, practice, and share experiences. This report describes the authors' experience of creating and running an active Coding Dojo in São Paulo, Brazil, sharing the... more
Evolutionary changes in object-oriented systems can result in large, complex classes, known as "God Classes". In this paper, we present a tool, developed as part of the JDeodorant Eclipse plugin, that can recognize opportunities for... more
Software quality is an important issue in the development of successful software application. Many methods have been applied to improve the software quality. Refactoring is one of those methods. But, the effect of refactoring in general... more
Context: Code smells are manifestations of design flaws that can degrade code maintainability. So far, no research has investigated if these indicators are useful for conducting system-level maintainability evaluations. Aim: The research... more
Vulnerability is associated with the system and it is a big risk for system and result in surplus maintenance cost. It is due to many reasons those are not considered during the stages of System Development Life Cycle (SDLC). During SDLC... more
MetaJ is a programming environment that supports metaprogramming in the Java language. The environment is designed to allow extensions via plug-ins which permit the user to manipulate programs written in different languages. This... more
Software engineers now face the difficult task of refactoring serial programs for parallel execution on multicore processors. Currently, they are offered little guidance as to how much benefit may come from this task, or how close they... more
Bad phenomena about functional over-related classes and confused inheritances in programs will cause difficulty in programs comprehension, extension and maintenance. In this paper it is defined as a new bad smell Functional over-Related... more
Refactoring is widely recognized as a way to improve the internal structure of a software system in order to ensure its long-term maintainability. Consequently, software projects which adopt refactoring practices should see reductions in... more
During software evolution changes are inevitable. These changes may lead to design erosion and the introduction of inadequate design solutions, such as design antipatterns. Several empirical studies provide evidence that the presence of... more
Software engineering is a continually evolving discipline, wherein researchers and members of industry are working towards defining and refining what are known as “best practices. ” Best practices are the set of known correct engineering... more
Software module clustering is the process of partitioning the structure of the software system using low-level dependencies in the source code in order to understand and improve the system’s structure. A software clustering tool, Munch,... more
This paper deals with refactoring of execution control charts of IEC 61499 basic function blocks as a means to improve the engineering support potential of the standard in development of industrial control applications. The main purpose... more
One purpose of software metrics is to measure the quality of programs. The results can be for example used to predict maintenance costs or improve code quality. An emerging view is that if software metrics are going to be used to improve... more
Product lines are a promising approach to improve conceptually the productivity of the software development process and thus to reduce both the cost and time of developing and maintaining increasingly complex systems. An important issue... more
In Executable Acceptance Test Driven Development, acceptance tests represent the requirements of a software system. As requirements change over time, the acceptance tests have to be updated and maintained. This process can be... more
Integrated Development Environments (IDEs) have come to perform a wide variety of tasks on behalf of the programmer, refactoring being a classic example. These operations have undeniable benefits, yet their large (and growing) number... more
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... more
H3C 3P8 [email protected] RÉSUMÉ. Afin d'asseoir le processus logiciel, le diagramme de classes UML se doit d'être complet mais aussi non redondant, deux qualités qu'il pourrait facilement perdre suite à une évolution prolongée. La... more
Context: Code smells are assumed to indicate bad design that leads to less maintainable code. However, this assumption has not been investigated in controlled studies with professional software developers. Aim: This paper investigates the... more
There is a growing need for scalable search-based software engineering approaches that address software engineering problems where a large number of objectives are to be optimized. Software refactoring is one of these problems where a... more
Maintenance of a software framework often requires restructuring its API (refactoring). Upon framework upgrade structural API changes may invalidate existing plugins-modules that used one of its previous versions. To preserve plugins, we... more
Refactoring can be an important ingredient in the stratcgy for development and evolution of complex telecommunications software systems. Refactoring is o n e way t o reuse and extend a successful software system. This article will present... more
One of the undesired effects of software evolution is the proliferation of unused components, which are not used by any application. As a consequence, the size of binaries and libraries tends to grow and system maintainability tends to... more
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... more
Object constraint language (OCL) is the object management group standard language for the precise specification of constraints associated with MetaObject facility specification-compliant models and metamodels. Although OCL has been... more
Refactoring is an activity which, in theory, should have minimal impact on the overall structure of a system. That said, certain refactorings change the coupling profile of a system and over time those cumulative changes in coupling can... more
Feature refactoring is the process of decomposing a program into a set of modules, called features, that encapsulate increments in program functionality. Different compositions of features yield different programs. As programs are defined... more
Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection classes contained... more
Software refactoring is a very well-studied subject, but with the huge gap between omnipresent multicore processors and the vast majority of software that has not been developed with multicore in mind, it gains new and important... more
This paper reports on an Action Research project that investigated the effect of introducing a number of Extreme Programming (XP) practices as teaching techniques to introductory programming students. The focus of the study was on using... more