Skip to main content
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
    • by 
    •   20  
      EngineeringMathematicsComputer ScienceSoftware Engineering
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
    • by 
    •   92  
      Software EngineeringObject Oriented ProgrammingType TheorySoftware Maintenance
Code smells are a well-known metaphor to describe symptoms of code decay or other issues with code quality which can lead to a variety of maintenance problems. Even though code smell detection and removal has been well-researched over the... more
    • by  and +1
    •   4  
      Software EngineeringSurveyCode SmellsRefactoring
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
    • by 
    •   6  
      Software MaintenanceSynchronizationJava ProgrammingThroughput
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
    • by 
    •   5  
      Time SeriesClusteringEvmRefactoring
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
    • by 
    •   3  
      Software MaintenanceData MiningRefactoring
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
    • by 
    •   5  
      Software SecurityInformation FlowSource CodeSoftware Systems
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
    • by 
    •   14  
      Software EngineeringRequirements EngineeringQuality ManagementSoftware Process Improvement and Assessment
Refactoring is a technique commonly applied by developers along the software maintenance and evolution. Software refactoring is expected to improve the internal quality attributes of a software project, such as coupling and cohesion.... more
    • by  and +1
    •   3  
      Software EngineeringSoftware Quality MetricsRefactoring
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
    • by 
    •   11  
      Software EngineeringObject Oriented ProgrammingJava ProgrammingCluster Analysis
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
    • by 
    •   2  
      Fuzzy LogicRefactoring
    • by 
    •   15  
      Software MaintenanceSource CodingJava ProgrammingGeneric Programming
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
    • by 
    •   4  
      Software EngineeringProgramming LanguagesSoftware DevelopmentRefactoring
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
    • by 
    •   6  
      Software EngineeringObject Oriented ProgrammingDesign PatternsRefactoring (Computer Science)
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
    • by 
    •   6  
      LearningPair ProgrammingTest Driven DevelopmentLessons Learned
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
    • by 
    •   8  
      Object Oriented ProgrammingInformaticsSoftware MaintenanceClustering Algorithms
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
    • by 
    •   2  
      MetricsRefactoring
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
    • by 
    •   4  
      Software EvolutionSoftware QualityCode SmellsRefactoring
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
    • by 
    •   6  
      Computer ScienceSoftware EngineeringSecurityDesign Patterns
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
    • by 
    •   11  
      Computer ScienceJava ProgrammingJavaGeneric Programming
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
    • by 
    •   17  
      Computer ScienceSoftware EngineeringModelingSoftware Development
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
    • by 
    •   9  
      Software EngineeringSoftware DevelopmentRefactoring (Computer Science)Dependency Theory
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
    • by 
    •   12  
      Software MaintenanceComplexitySoftware EvolutionSource Coding
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
    • by  and +3
    •   5  
      Software EvolutionSource Code AnalysisSoftware QualityCode Smells
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
    • by 
    •   16  
      Computer ScienceSoftware EngineeringDesignSoftware Maintenance
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
    • by 
    •   11  
      Software EngineeringSoftware EvolutionSoftwareAutomation
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
    • by 
    •   5  
      Time SeriesClusteringEvmRefactoring
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
    • by 
    •   7  
      EngineeringSoftware EngineeringTechnologySoftware Maintenance
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
    • by 
    •   8  
      MetricsDesign PatternsComputer SoftwareDesign Pattern
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
    • by 
    •   7  
      Information SystemsSoftwareComputer SoftwareVariability
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
    • by 
    •   2  
      RefactoringAcceptance Test
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
    • by 
    •   7  
      HistorySoftware MaintenanceData MiningChange detection
    • by 
    •   11  
      Computer ScienceObject Oriented ProgrammingSoftware DevelopmentMiddleware
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
    • by 
    •   5  
      MethodologyEmpirical Software EngineeringData CollectionData Capture
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
    • by 
    •   13  
      Relational DatabaseSemanticsData AnalysisUML
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
    • by 
    •   7  
      Information SystemsSoftware EvolutionSource Code AnalysisSoftware Quality
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
    • by 
    •   6  
      Software EngineeringRefactoring (Computer Science)Search Based Software EngineeringNSGA-II
    • by 
    •   5  
      Computer ScienceSoftware QualityCode SmellsRefactoring
    • by 
    •   6  
      Computer ScienceSoftware EngineeringSecurityDesign Patterns
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
    • by 
    •   3  
      AdaptationSoftware FrameworkRefactoring
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
    • by 
    •   12  
      Distributed ComputingControl SystemsHardwareLegacy Code
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
    • by 
    •   16  
      Information SystemsGenetic AlgorithmsSoftware EvolutionGenetic Algorithm
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
    • by 
    •   11  
      Information SystemsHistorySoftware MaintenanceComputer Software
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
    • by 
    •   25  
      Artificial IntelligenceSoftware MaintenanceSemanticsMetadata
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
    • by 
    •   9  
      Software EngineeringSoftware MaintenanceSoftware TestingRefactoring (Computer Science)
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
    • by 
    •   7  
      Case StudySoftware Product LineProgram SynthesisRefactoring
Source code lexicon plays a paramount role in software quality: poor lexicon can lead to poor comprehensibility and even increase software fault-proneness. For this reason, renaming a program entity, i.e., altering the entity identifier,... more
    • by  and +1
    •   12  
      Information SystemsHistorySemanticsDocumentation
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
    • by 
    •   5  
      SmalltalkReuseMultiple InheritanceRefactoring
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
    • by 
    •   10  
      Software MaintenanceParallel ProcessingParallelPipelines
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
    • by 
    •   12  
      Computer ScienceObject Oriented ProgrammingAction ResearchProblem Solving