3 research outputs found

    Refactorings of Design Defects using Relational Concept Analysis

    Get PDF
    Software engineers often need to identify and correct design defects, ıe} recurring design problems that hinder development and maintenance\ud by making programs harder to comprehend and--or evolve. While detection\ud of design defects is an actively researched area, their correction---mainly\ud a manual and time-consuming activity --- is yet to be extensively\ud investigated for automation. In this paper, we propose an automated\ud approach for suggesting defect-correcting refactorings using relational\ud concept analysis (RCA). The added value of RCA consists in exploiting\ud the links between formal objects which abound in a software re-engineering\ud context. We validated our approach on instances of the <span class='textit'></span>Blob\ud design defect taken from four different open-source programs

    Détection et correction automatique des défauts de conception au moyen de l’apprentissage automatique pour l’amélioration de la qualité des systèmes

    Get PDF
    RÉSUMÉ: La maintenance logicielle apparait comme l’activité la plus coûteuse dans le cycle du développement : plus de 80% des ressources lui sont consacrées. Au cours des activités de maintenance, l’architecture et la conception du logiciel sont très peu prises en compte. Il s’en suit une dégradation progressive de ces artefacts dus à des défauts de conception. Ces défauts peuvent avoir été introduits dès la première conception mais également par les maintenances du logiciel. La dégradation de la conception du logiciel rend encore plus difficile la compréhension du logiciel et les maintenances à venir, créant ainsi un cycle vicieux. Nous nous proposons dans ce projet de recherche de contribuer à réduire la dégradation des conceptions logicielles en mettant en place un système intégré de détection et de correction automatiques des défauts de conception et également un suivi de la qualité de la conception. Ce système, nommé SUDERCO, est basé sur l’apprentissage automatique et vise à fournir un cadre souple et évolutif pour aider à réduire les coûts de maintenance par la préservation de la conception. ---------- ABSTRACT: Software maintenance is emerging as the most expensive activity in the development cycle: more than 80% of resources are devoted to it. During maintenance activities, architecture and design of the software are rarely taken into account. It follows a progressive deterioration of these artifacts due to design defects. These defects may have been introduced not only in the first design, but also during the maintenance of the software. The degradation of software design makes it even harder to understand the software and perform future maintenance, creating a vicious cycle. We propose a research plan to contribute in minimizing the degradation of software designs by providing an integrated system for the automatic detection and correction of design defects, along with monitoring the design quality. This system, called SUDERCO, is based on machine learning techniques and aims at providing a flexible and scalable tool to help reduce maintenance costs by preserving the design

    Using attribute slicing to refactor large classes

    Get PDF
    It can often be the case in object-oriented programming that classes bloat, particularly if the represent an ill-formed abstraction. A poorly formed class tends to be formed from disjoint sets of methods and attributes. This can result in a loss of cohesion within the class. Slicing attributes can be used to identify and make explicit the relationships between attributes and the methods that refer to them. This can be a useful tool for identifying code smells and ultimately refactoring. Attribute slicing can also be used to examine the relationships between attributes, as is the case in decomposition slicing. This paper introduces attribute slicing in the context of refactoring bloated classes
    corecore