4 research outputs found

    Streamlining code smells: Using collective intelligence and visualization

    Get PDF
    Context. Code smells are seen as major source of technical debt and, as such, should be detected and removed. Code smells have long been catalogued with corresponding mitigating solutions called refactoring operations. However, while the latter are supported in current IDEs (e.g., Eclipse), code smells detection scaffolding has still many limitations. Researchers argue that the subjectiveness of the code smells detection process is a major hindrance to mitigate the problem of smells-infected code. Objective. This thesis presents a new approach to code smells detection that we have called CrowdSmelling and the results of a validation experiment for this approach. The latter is based on supervised machine learning techniques, where the wisdom of the crowd (of software developers) is used to collectively calibrate code smells detection algorithms, thereby lessening the subjectivity issue. Method. In the context of three consecutive years of a Software Engineering course, a total “crowd” of around a hundred teams, with an average of three members each, classified the presence of 3 code smells (Long Method, God Class, and Feature Envy) in Java source code. These classifications were the basis of the oracles used for training six machine learning algorithms. Over one hundred models were generated and evaluated to determine which machine learning algorithms had the best performance in detecting each of the aforementioned code smells. Results. Good performances were obtained for God Class detection (ROC=0.896 for Naive Bayes) and Long Method detection (ROC=0.870 for AdaBoostM1), but much lower for Feature Envy (ROC=0.570 for Random Forrest). Conclusions. Obtained results suggest that Crowdsmelling is a feasible approach for the detection of code smells, but further validation experiments are required to cover more code smells and to increase external validityContexto. Os cheiros de código são a principal causa de dívida técnica (technical debt), como tal, devem ser detectados e removidos. Os cheiros de código já foram há muito tempo catalogados juntamente com as correspondentes soluções mitigadoras chamadas operações de refabricação (refactoring). No entanto, embora estas últimas sejam suportadas nas IDEs actuais (por exemplo, Eclipse), a deteção de cheiros de código têm ainda muitas limitações. Os investigadores argumentam que a subjectividade do processo de deteção de cheiros de código é um dos principais obstáculo à mitigação do problema da qualidade do código. Objectivo. Esta tese apresenta uma nova abordagem à detecção de cheiros de código, a que chamámos CrowdSmelling, e os resultados de uma experiência de validação para esta abordagem. A nossa abordagem de CrowdSmelling baseia-se em técnicas de aprendizagem automática supervisionada, onde a sabedoria da multidão (dos programadores de software) é utilizada para calibrar colectivamente algoritmos de detecção de cheiros de código, diminuindo assim a questão da subjectividade. Método. Em três anos consecutivos, no âmbito da Unidade Curricular de Engenharia de Software, uma "multidão", num total de cerca de uma centena de equipas, com uma média de três membros cada, classificou a presença de 3 cheiros de código (Long Method, God Class, and Feature Envy) em código fonte Java. Estas classificações foram a base dos oráculos utilizados para o treino de seis algoritmos de aprendizagem automática. Mais de cem modelos foram gerados e avaliados para determinar quais os algoritmos de aprendizagem de máquinas com melhor desempenho na detecção de cada um dos cheiros de código acima mencionados. Resultados. Foram obtidos bons desempenhos na detecção do God Class (ROC=0,896 para Naive Bayes) e na detecção do Long Method (ROC=0,870 para AdaBoostM1), mas muito mais baixos para Feature Envy (ROC=0,570 para Random Forrest). Conclusões. Os resultados obtidos sugerem que o Crowdsmelling é uma abordagem viável para a detecção de cheiros de código, mas são necessárias mais experiências de validação para cobrir mais cheiros de código e para aumentar a validade externa

    Model Transformation Languages with Modular Information Hiding

    Get PDF
    Model transformations, together with models, form the principal artifacts in model-driven software development. Industrial practitioners report that transformations on larger models quickly get sufficiently large and complex themselves. To alleviate entailed maintenance efforts, this thesis presents a modularity concept with explicit interfaces, complemented by software visualization and clustering techniques. All three approaches are tailored to the specific needs of the transformation domain

    Architectural strategies for promoting well-being in sustainable renovation of social housing

    Get PDF
    The post-war multi-family social housing (MSH) stock faces extensive renovation over the coming years. These prospects represent a significant potential for implementing energy savings while updating the housing stock to better support the well-being of the residents. The two agendas are mutually dependent. The reductions needed to reach a CO2-neutral society calls for extensive energy renovations. These renovations are likely to dramatically change the built environment and thereby the human perception of it. On the positive side, extensive energy renovation may also represent an opportunity to add value for the residents that go far beyond the energy reductions in themselves. Therefore, energy savings cannot be treated as an isolated matter. The thesis builds on the assumption that a more holistic approach to sustainability is needed to promote long-term sustainable renovation solutions. In this connection, it is key to focus on the early design phases, as this is where defining decisions are made, and the ability to influence a project is highest. Nevertheless, the early stages also represent a high level of complexity as many concerns are to be addressed simultaneously amongst a large group of stakeholders. In recent years, different initiatives have been proposed to meet this complexity and promote a more sustainable development of the building sector. However, the thesis has identified a gap in existing initiatives when it comes to supporting the architect’s role as a promoter of well-being as part of the early phases of sustainable renovations of MSH. Especially, promoting traditionally “softer,” more qualitative well-being themes as part of sustainable renovation appears under-researched. Based on the established knowledge gap, the thesis addresses the following research question: “How can resident well-being be promoted by architects in the early design phases of interdisciplinary sustainable renovation processes?”The research question is investigated through three different objectives. A mixed-methods research design is applied to shed light on these objectives. Objective 1: Focuses on articulating synergies between energy savings and improved resident well-being in renovation from an architectural perspective. Based on a rereading of architectural theory and evaluation theory, the thesis proposes a new conceptual framework for this purpose. The framework may be considered a contribution to the field in its own right as a vocabulary for articulating the documented impact of renovation efforts. It further forms the theoretical foundation for the remaining objectives of the thesis. Objective 2: Focuses on identifying examples that renovation measures can impact resident well-being in a broad understanding, and that this can form synergies with energy savings. Based on architectural analysis of completed projects, empirical studies, and a literature review, the thesis identifies such examples. It proposes a categorization into “well-being themes,” which may be addressed in conjunction with energy savings. The identified themes are: “The sensuous space,” “The safe space,” “The social space,” “’My’ space,” “The including space,” and “The functional space.”The well-being themes exemplify that a broad range of well-being aspects may be influenced as part of sustainable renovation of MSH. Objective 3: Focuses on communicating the identified insights on potentials for documented impact back into the early stage renovation practice – focusing on “softer” well-being themes. Based on a research through design study, a literature review, and intermediate focus group interview, the thesis proposes three concepts for informing the process. The three concepts are: metrics intended for computer simulation, a catalog of impact cases, and supplementing the catalog of impact cases with examples of economic valuation. The proposed concepts should not be considered “neither or” but supplementary ways of communicating knowledge, which may bring value to the process depending on the application context. The perspective is to further develop and test the concepts in collaboration with practitioners in ongoing renovation projects. The three objectives and related research findings constitute three strategies for promoting well-being in sustainable renovation of social housing. By proposing these strategies, the aim is to contribute to a development where the evaluation of well-being in a broad sense becomes a fully integrated part of more holistically sustainable renovation practices – hopefully leading to more long-term sustainable renovation solutions
    corecore