Code smell is a risky code pattern impacting code maintenance. Some of the code smells are defined by metrics (e.g., lines of code). Unfortunately, it is not clear how to set these thresholds for them. Goal: To propose a smell description language that allows querying code repositories to empirically determine impact of metric thresholds on severity of smells. Method: We propose a language, called McPython, that allows defining metric-based smells. We evaluate the expressiveness of the language by specifying some popular code smells. Results: McPython is a functional domain-specific language that allows defining smells as parameterized logical propositions with auxiliary functions. McPython code is translated to Python and executed on object-oriented representation of a code repository. Its current version is capable of expressing 7 code smells. Conclusion: Despite its limitations, McPython has the potential to help in investigating the impact of code smell parameters on their severity.
2
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Context: research on understanding the laws related to software-project evolution can indirectly impact the way we design software development processes, e.g., knowing the nature of the code-repository content growth could help us improve the ways we monitor the progress of OSS software development projects and predict their future development Goal: our aim is to empirically verify a hypothesis that the OSS code repositories grow in size according to the Pareto principle. Method: we collected and curated a sample of 31,343 OSS code repositories hosted on GitHub and analyzed their content growth over time to verify whether it follows the Pareto principle. Results: we observed that, on average, monotonically growing OSS repositories reach 75% of their final content size within the first 25% revisions. Conclusions: the content size of monotonically growing OSS repositories seems to grow in size according to the Pareto principle with the 75/25 ratio.
3
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Context: predicting the number of defects in a defect backlog in a given time horizon can help allocate project resources and organize software development. Goal: to compare the accuracy of three defect backlog prediction methods in the context of large open-source (OSS) projects, i.e., ARIMA, Exponential Smoothing (ETS), and the state-of-the-art method developed at Ericsson AB (SM). Method: we perform a simulation study on a sample of 20 open-source projects to compare the prediction accuracy of the methods. Also, we use the Na\"{\i}ve prediction method as a baseline for sanity check. We use statistical inference tests and effect size coefficients to compare the prediction errors. Results: ARIMA, ETS, and SM were more accurate than the Na\"{\i}ve method. Also, the prediction errors were statistically lower for ETS than for SM (however, the effect size was negligible). Conclusions: ETS seems slightly more accurate than SM when predicting defect backlog size of OSS projects.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.