32,315 research outputs found
What to Fix? Distinguishing between design and non-design rules in automated tools
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
© 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
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
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
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
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
- …