32,315 research outputs found

    What to Fix? Distinguishing between design and non-design rules in automated tools

    Full text link
    Technical debt---design shortcuts taken to optimize for delivery speed---is a critical part of long-term software costs. Consequently, automatically detecting technical debt is a high priority for software practitioners. Software quality tool vendors have responded to this need by positioning their tools to detect and manage technical debt. While these tools bundle a number of rules, it is hard for users to understand which rules identify design issues, as opposed to syntactic quality. This is important, since previous studies have revealed the most significant technical debt is related to design issues. Other research has focused on comparing these tools on open source projects, but these comparisons have not looked at whether the rules were relevant to design. We conducted an empirical study using a structured categorization approach, and manually classify 466 software quality rules from three industry tools---CAST, SonarQube, and NDepend. We found that most of these rules were easily labeled as either not design (55%) or design (19%). The remainder (26%) resulted in disagreements among the labelers. Our results are a first step in formalizing a definition of a design rule, in order to support automatic detection.Comment: Long version of accepted short paper at International Conference on Software Architecture 2017 (Gothenburg, SE

    Influence of developer factors on code quality: a data study

    Get PDF
    © 2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes,creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.Automatic source-code inspection tools help to assess, monitor and improve code quality. Since these tools only examine the software project’s codebase, they overlook other possible factors that may impact code quality and the assessment of the technical debt (TD). Our initial hypothesis is that human factors associated with the software developers, like coding expertise, communication skills, and experience in the project have some measurable impact on the code quality. In this exploratory study, we test this hypothesis on two large open source repositories, using TD as a code quality metric and the data that may be inferred from the version control systems. The preliminary results of our statistical analysis suggest that the level of participation of the developers and their experience in the project have a positive correlation with the amount of TD that they introduce. On the contrary, communication skills have barely any impact on TD.Peer ReviewedPostprint (author's final draft

    A framework for the selection of the right nuclear power plant

    Get PDF
    Civil nuclear reactors are used for the production of electrical energy. In the nuclear industry vendors propose several nuclear reactor designs with a size from 35–45 MWe up to 1600–1700 MWe. The choice of the right design is a multidimensional problem since a utility has to include not only financial factors as levelised cost of electricity (LCOE) and internal rate of return (IRR), but also the so called “external factors” like the required spinning reserve, the impact on local industry and the social acceptability. Therefore it is necessary to balance advantages and disadvantages of each design during the entire life cycle of the plant, usually 40–60 years. In the scientific literature there are several techniques for solving this multidimensional problem. Unfortunately it does not seem possible to apply these methodologies as they are, since the problem is too complex and it is difficult to provide consistent and trustworthy expert judgments. This paper fills the gap, proposing a two-step framework to choosing the best nuclear reactor at the pre-feasibility study phase. The paper shows in detail how to use the methodology, comparing the choice of a small-medium reactor (SMR) with a large reactor (LR), characterised, according to the International Atomic Energy Agency (2006), by an electrical output respectively lower and higher than 700 MWe

    Privacy-Preserving Reengineering of Model-View-Controller Application Architectures Using Linked Data

    Get PDF
    When a legacy system’s software architecture cannot be redesigned, implementing additional privacy requirements is often complex, unreliable and costly to maintain. This paper presents a privacy-by-design approach to reengineer web applications as linked data-enabled and implement access control and privacy preservation properties. The method is based on the knowledge of the application architecture, which for the Web of data is commonly designed on the basis of a model-view-controller pattern. Whereas wrapping techniques commonly used to link data of web applications duplicate the security source code, the new approach allows for the controlled disclosure of an application’s data, while preserving non-functional properties such as privacy preservation. The solution has been implemented and compared with existing linked data frameworks in terms of reliability, maintainability and complexity

    NATIONAL INNOVATION SYSTEM AND MACROECONOMIC POLICIES: BRAZIL AND INDIA IN COMPARATIVE PERSPECTIVE

    Get PDF
    Efforts towards economic development in Brazil and India share some common aspects. From the beginning of the 1950s to the end of the 1980s, both countries adopted import substitution policies including high tariffs and non-tariff barriers. Since the beginning of the 1990s, liberalizing economic reforms have been implemented by the respective Governments. If we compare the reach of the Brazilian reform to that of India, one could easily conclude that the former was more extensive and profound than the latter; and in conventional indicators of innovative effort such as research and development expenditures, education coverage, average years of education and literacy rate, Brazil’s results are a little bit better than those of India. However, since the beginning of the 1980s, India has been showing better general economic performance than Brazil. This paper argues and gives some empirical evidence to show that India’s performance is explained by its institutional capacity for coordinating conventional macroeconomic policies with other policies related to its National Innovation System.

    Towards Automated Performance Bug Identification in Python

    Full text link
    Context: Software performance is a critical non-functional requirement, appearing in many fields such as mission critical applications, financial, and real time systems. In this work we focused on early detection of performance bugs; our software under study was a real time system used in the advertisement/marketing domain. Goal: Find a simple and easy to implement solution, predicting performance bugs. Method: We built several models using four machine learning methods, commonly used for defect prediction: C4.5 Decision Trees, Na\"{\i}ve Bayes, Bayesian Networks, and Logistic Regression. Results: Our empirical results show that a C4.5 model, using lines of code changed, file's age and size as explanatory variables, can be used to predict performance bugs (recall=0.73, accuracy=0.85, and precision=0.96). We show that reducing the number of changes delivered on a commit, can decrease the chance of performance bug injection. Conclusions: We believe that our approach can help practitioners to eliminate performance bugs early in the development cycle. Our results are also of interest to theoreticians, establishing a link between functional bugs and (non-functional) performance bugs, and explicitly showing that attributes used for prediction of functional bugs can be used for prediction of performance bugs
    • …
    corecore